我正在努力使用 XPath 访问 xs:appinfo 元素内的信息
我在 xs:appinfo 元素内有另一个结构良好的 XML。有没有办法使用 XPath 直接访问 xs:appinfo 中该 XML 的某个元素?或者 xs:appinfo 中的所有内容都仅解释为纯文本吗?
XL 架构示例:
<xs:schema targetNamespace="ts" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyElement">
<xs:complexType>
<xs:sequence>
<xs:element name="MyChildElement1" type="xs:string"/>
<xs:element name="MyChildElement2" type="xs:string">
<xs:annotation>
<xs:appinfo>
<AppInfoElement1>Hello</AppInfoElement1>
<AppInfoElement2>Hello</AppInfoElement2>
</xs:appinfo>
<xs:documentation xml:lang="en">Any documentation</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
如何使用 XPath 访问 appinfo 中 AppInfoElement2 的文本?
我尝试了以下方法:
//xs:annotation/xs:appinfo[.]
//xs:annotation/xs:appinfo/AppInfoElement2[text()]
这个 XPath,
//AppInfoElement2/text()
将选择文档中所有
text
元素的所有 AppInfoElement2
节点子节点。
通过使用
//
,您可以绕过命名空间元素。 如果您需要在 XPath 中指定命名空间元素,请参阅 XPath 如何处理 XML 命名空间?