XPath:如何访问 XML 架构上的 xs:appinfo 元素内的信息

问题描述 投票:0回答:1

我正在努力使用 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()]
xml xpath xsd
1个回答
0
投票

这个 XPath,

//AppInfoElement2/text()

将选择文档中所有

text
元素的所有
AppInfoElement2
节点子节点。

通过使用

//
,您可以绕过命名空间元素。 如果您需要在 XPath 中指定命名空间元素,请参阅 XPath 如何处理 XML 命名空间?

© www.soinside.com 2019 - 2024. All rights reserved.