Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XPath表达式来选择特定节点及其';具有指定的多个属性的属性_Xml_Xslt_Xpath_Xslt 1.0 - Fatal编程技术网

Xml XPath表达式来选择特定节点及其';具有指定的多个属性的属性

Xml XPath表达式来选择特定节点及其';具有指定的多个属性的属性,xml,xslt,xpath,xslt-1.0,Xml,Xslt,Xpath,Xslt 1.0,我有一个配置文件,里面配置了多个事务插件。下面是一个事务插件的示例。配置文件中可能存在的所有事务插件的结构都是相同的。我如何能够查询名为“mmc”的源代码并获取其所有步骤。“mmc”源也可以存在于另一个不同的事务配置中 我写 String expression = "/plugins/transaction[@code=501110]/source[@name=mmc]/step/@*"; 但它没有给我任何结果 <transaction code="501110" name="A tra

我有一个配置文件,里面配置了多个事务插件。下面是一个事务插件的示例。配置文件中可能存在的所有事务插件的结构都是相同的。我如何能够查询名为“mmc”的源代码并获取其所有步骤。“mmc”源也可以存在于另一个不同的事务配置中

我写

String expression = "/plugins/transaction[@code=501110]/source[@name=mmc]/step/@*";
但它没有给我任何结果

<transaction code="501110" name="A transaction" plugin="com.Transaction.ATransaction">
    <source name="mmc">
        <step id="0">
            <result code="*">
                <destination>mms</destination>
            </result>
        </step>
        <step id="1">
            <result code="0000">
                <destination>brmc</destination>
            </result>
            <result code="0012">
                <destination>cre</destination>
            </result>
            <result code="default">
                <destination>nc</destination>
            </result>
        </step>
    </source>
    <source name="mms">
        <step id="1">
            <result code="0000">
                <destination>bnk</destination>
            </result>
            <result code="default">
                <destination>nc</destination>
            </result>
        </step>
    </source>
    <source name="bnk">
        <step id="1">
            <result code="0000">
                <destination>nc</destination>
            </result>
            <result code="default">
                <destination>nc</destination>
            </result>
        </step>
    </source>
</transaction>

彩信
brmc
cre
数控
bnk
数控
数控
数控
尝试执行以下操作:

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step
如果需要所有
目标
元素:

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step/*[@name=contains(., "result code")]/destination/text()
如果需要所有
结果代码

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step/*[@name=contains(., "result code")]/@code
尝试这样做:

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step
如果需要所有
目标
元素:

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step/*[@name=contains(., "result code")]/destination/text()
如果需要所有
结果代码

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step/*[@name=contains(., "result code")]/@code
尝试这样做:

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step
如果需要所有
目标
元素:

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step/*[@name=contains(., "result code")]/destination/text()
如果需要所有
结果代码

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step/*[@name=contains(., "result code")]/@code
尝试这样做:

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step
如果需要所有
目标
元素:

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step/*[@name=contains(., "result code")]/destination/text()
如果需要所有
结果代码

/plugins/transaction[@code="501110"]/source[@name="mmc"]/step/*[@name=contains(., "result code")]/@code

我在示例输入中没有看到
plugins
元素,但假设它在那里,而您只是没有显示它,那么沿着以下几行的XPath应该可以做到这一点:

/plugins/transaction[@code = '501110']/source[@name = 'mmc']/step
这将选择指定路径下的所有
步骤
元素


在这种特殊情况下,
501110
周围的引号不是绝对必要的,因为
code
是一个数字,但它可能包含一个非数字字符,因此在这里将其视为字符串值是有意义的。

我在示例输入中没有看到
插件
元素,但假设它就在那里,而您只是没有显示它,那么沿着这些线的XPath应该可以做到这一点:

/plugins/transaction[@code = '501110']/source[@name = 'mmc']/step
这将选择指定路径下的所有
步骤
元素


在这种特殊情况下,
501110
周围的引号不是绝对必要的,因为
code
是一个数字,但它可能包含一个非数字字符,因此在这里将其视为字符串值是有意义的。

我在示例输入中没有看到
插件
元素,但假设它就在那里,而您只是没有显示它,那么沿着这些线的XPath应该可以做到这一点:

/plugins/transaction[@code = '501110']/source[@name = 'mmc']/step
这将选择指定路径下的所有
步骤
元素


在这种特殊情况下,
501110
周围的引号不是绝对必要的,因为
code
是一个数字,但它可能包含一个非数字字符,因此在这里将其视为字符串值是有意义的。

我在示例输入中没有看到
插件
元素,但假设它就在那里,而您只是没有显示它,那么沿着这些线的XPath应该可以做到这一点:

/plugins/transaction[@code = '501110']/source[@name = 'mmc']/step
这将选择指定路径下的所有
步骤
元素


在这种特殊情况下,
501110
周围的引号不是绝对必要的,因为
code
是一个数字,但如果它可能包含非数字字符,在这里将其视为字符串值是有意义的。

谢谢,先生,引号是问题所在。谢谢,先生,引用是问题。谢谢,先生,引用是问题。谢谢,先生,引用是问题。