如何使用xmlns 属性的xpath在xmlns内部获取特定的嵌套元素?



>我有一个XML,我想使用XPath获取一个特定的嵌套元素,但它不起作用。也许这就是为什么标签包含 xmlns 属性的原因。有什么建议吗?

<DataPDU xmlns="urn:cma:stp:xsd:stp.1.0">
<Body>
<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.01">
<test1>
<test2>
<test3>
<test4>text</test4>
</test3>
</test2>
</test1>
<test5>
<test6>
<test7>
<test8>dummy text</test8>
</test7>
</test6>
</test5>
<test9>test</test9>
<test10>p1212121</test10>
<test11>147</test11>
<test12>lorem</test12>
</AppHdr>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08">
<test13>
<test14>
<test15>asap</test15>
</test14>
</test13>
</Document>
</Body>

是的,您必须定义命名空间。看看这个——

如何获取带有命名空间的 XML 元素

或者您可以将 xml 作为字符串传递并使用正则表达式删除这些属性 -

Regex.Replace(xmlString, @"(sxmlns="".+"")", "")

根据您的使用案例,您可以使用其中之一。

最新更新