XPath 检索架构中某个选项中的节点名称



我有一个 xml 模式,其中包含一个包含选择节点的复杂元素:

    <xs:complexType name="MemberType">
    <xs:sequence>
        <xs:element name="FirstName" type="xs:string"/>
        <xs:element name="LastName" type="xs:string"/>
        <xs:element name="DOB" type="xs:string"/>
        <xs:choice>
            <xs:element name="StandardID" type="xs:string"/>
            <xs:element name="Type2ID" type="xs:string"/>
            <xs:element name="OtherID" type="xs:string"/>
        </xs:choice>
    </xs:sequence>
</xs:complexType>

我最终的目标是拥有一个键值对,其中包含文档中的 id 类型和值。手动解析工作正常,但如果有 XPath 方法可以做到这一点,它会更简单。我假设这是一个两步 xpath 检索所选节点名称,然后检索具有该名称的值。假设选择节点可能会更改。

如何使用 XPath 检索元素名称,例如"Type2ID"?(另请注意,xsd 是外部的,我无法更改它(

如果包含元素是上下文项,则可以使用 name(*[last()]) 获取其最后一个子元素的名称。

最新更新