Xml XPath表达式来选择特定节点及其';具有指定的多个属性的属性
我有一个配置文件,里面配置了多个事务插件。下面是一个事务插件的示例。配置文件中可能存在的所有事务插件的结构都是相同的。我如何能够查询名为“mmc”的源代码并获取其所有步骤。“mmc”源也可以存在于另一个不同的事务配置中 我写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
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
是一个数字,但如果它可能包含非数字字符,在这里将其视为字符串值是有意义的。谢谢,先生,引号是问题所在。谢谢,先生,引用是问题。谢谢,先生,引用是问题。谢谢,先生,引用是问题。