当一个命名空间有不同的架构时,当我想从 xml 文件中选择带有 xpath 的项目时,我遇到了问题。
给出的是这个有效的 xml 文件:
<getDataAction xmlns="http://example.org/ns1">
<getData xmlns:f4k1="http://example.org/ns2" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<f4k1:place xmlns:f5k1="http://example.org/ns3">
<f4k1:city i:type="f5k1:Country" xmlns:f5k1="http://example.org/ns4">
<f5k1:notice>Notice</f5k1:notice>
</f4k1:city>
<f4k1:testvillage i:nil="true">
<f4k1:data xmlns:f5k1="http://example.org/ns5">
<f5k1:address xmlns:d7k1="http://example.org/ns6">
<f5k1:important>no</f5k1:important>
</f5k1:address>
</f4k1:data>
</f4k1:testvillage>
</f4k1:place>
</getData>
</getDataAction>
我要选择
<f5k1:notice>Notice</f5k1:notice>
所以我用这个xpath-query //f5k1:notice
,但它不起作用。如果我将 ns5 命名空间(第 8 行)更改为 ns4(如第 4 行),它将起作用。
你能告诉我为什么这会起作用以及我必须做些什么才能在不更改 XML 的情况下让它工作吗?