这是一个示例代码段,显示了元素的架构定义的格式:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.1">
<xs:include schemaLocation="enumerations_schema.xsd"/>
<xs:element name="xml_details" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="xml_element_1" minOccurs="0"/>
<xs:element name="xml_element_3" type="xs:string" minOccurs="0"/>
<xs:element name="xml_element_4" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="data_details" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="data_element_1" minOccurs="0">
<xs:annotation>
<xs:documentation>Lorem ipsum</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="date" type="xs:date"/>
<xs:attribute name="as_of_date" type="xs:date"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="data_element_2" type="xs:decimal" minOccurs="0">
<xs:annotation>
<xs:documentation>Lorem ipsum</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="data_element_3" type="xs:decimal" minOccurs="0"/>
<xs:element name="data_element_4" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="Enumeration_1">
<xs:attribute name="type" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="data_element_5" type="xs:string" minOccurs="0"/>
<xs:element name="data_element_6" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
如您所见,有两个包含多个子元素的父元素(xml_details和data_details)。我的问题是如何使用XSLT只获取子元素名称(叶子节点)?输出看起来像这样:
xml_element_1
xml_element_3
xml_element_4
data_element_1
data_element_2
data_element_3
data_element_4
data_element_5
data_element_6
答案 0 :(得分:0)
如果您使用XPath表达式//xs:element[not(.//xs:element)]/@name
,您将获得所需的结果。