我有这样的XML:
<request type="POST">
<paths count="0"/>
<values count="9">
<Invoices1>123ABC</Invoices1>
<Invoices2>456EFG</Invoices2>
<Invoices3>789HIJ</Invoices3>
<Invoices4>012KLM</Invoices4>
<case_Email>Email</case_Email>
<case_Print>case_Print</case_Print>
<case_Fax>Fax</case_Fax>
<zone_TexteReponse>jkg</zone_TexteReponse>
<Editer>Editer</Editer>
</values>
我会使用XSL来转换这个XML,但我正在努力使用标签Invoicexxx。 如何使用XPath选择它们:
/request/values/Invoices*
感谢您的帮助: - )
答案 0 :(得分:3)
/request/values/*[starts-with(name(), 'Invoices')]
这是不如何使用XML的一个很好的例子。以下是此XML的外观:
<request type="POST">
<paths />
<values>
<Invoice>123ABC</Invoice>
<Invoice>456EFG</Invoice>
<Invoice>789HIJ</Invoice>
<Invoice>012KLM</Invoice>
<case>
<Email>Email</Email>
<Print>Print</Print>
<Fax>Fax</Fax>
</case>
<zone>
<TexteReponse>jkg</TexteReponse>
</zone>
<Editer>Editer</Editer>
</values>
</request>
现在一个更明智的/request/values/Invoice
会起作用。
使用XML避免的事情
<Invoice>
。<case_Email>
等元素。<values count="9">
这样的东西是多余的。如果你想数数孩子,请数数。无需在任何地方存储计数。答案 1 :(得分:1)
这是一种方式:
/request/values/*[starts-with(name(), 'Invoices')]
答案 2 :(得分:1)
使用路径/request/values/*[starts-with(local-name(), 'Invoices')]
。