代码之家  ›  专栏  ›  技术社区  ›  Gaurav Thantry

如何通过xpath获取属性类型

  •  1
  • Gaurav Thantry  · 技术社区  · 7 年前

    如何使用xpath获取属性的数据类型。我的代码如下

     <filter xmlns:ns="http://org.apache.synapse/xsd" xpath="get-property('poNumber')=INTEGER">
    

    我还需要检查属性是否为空。请参见下面的代码

    <filter xmlns:ns="http://org.apache.synapse/xsd" xpath="get-property('poNumber')=''">
    

    这是我的财产

    <property expression="$url:poNumber" name="poNumber" scope="default"
    type="INTEGER" xmlns:ns="http://org.apache.synapse/xsd"/>
    

    我正在发送 poNumber 作为url参数,并且必须检查是否提供了属性值。如果是,我必须检查它是否是整数。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Bee    7 年前

    您只需使用regex就可以做到这一点。

    <filter source="$url:poNumber" regex=".*\S.*">
        <then>
            <log level="custom">
                <property name="Value is " value="Not Empty"/>
            </log>
            <filter source="$url:poNumber" regex="-?\d+">
                <then>
                    <log level="custom">
                        <property name="Value is " value="Integer"/>
                    </log>
                </then>
                <else>
                    <log level="custom">
                        <property name="Value is " value="Not Integer"/>
                    </log>
                </else>
            </filter>
        </then>
        <else>
            <log level="custom">
                <property name="Value is " value="Empty"/>
            </log>
        </else>
    </filter>