我有一个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()])
获取其最后一个子元素的名称。