如何使用XSLT从XML架构中提取元素名称?

苯基

这是一个示例片段,显示了元素的架构定义的格式:

            <?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
马丁·霍恩(Martin Honnen)

如果使用XPath表达式,//xs:element[not(.//xs:element)]/@name则会得到所需的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从具有名称空间和架构的XML文档中提取元素的集合

如何使用nokogiri从xml文件中提取元素值

如何使用XSLT删除特定xml元素的名称空间前缀?

如何从单个 XML 元素中提取文本?

使用awk从xml元素中提取文本

使用 xpath 从 xml 元素中提取值

如何使用purrr从列表中提取元素?

如何使用BeautifulSoup从'a'元素中提取文本?

使用XSLT从XML文档中提取文本内容

如何使用Rest-assured从具有多个名称空间的SOAP XML响应中提取值?

如何使用 XSLT 从 XML 标记名称中动态提取一部分?

当xml具有与元素关联的名称空间时,如何使用xslt从xml正确获取数据

如何从xml中提取附件,包括名称和大小?

如何使用python和BeautifulSoup在xml中提取父元素的标签

从使用名称空间的XML文档中提取数据

无法使用 XDocument 从 XML 中提取子元素

从元素中提取 XML 元素数组

从列表中的向量中提取元素名称

如何使用 Laravel 从名称中提取首字母

如何使用iTextSharp从PDF中提取实际字体名称?

如何使用nltk从字符串中提取名称

如何使用xslt转换嵌套的XML元素?

如何使用 xslt 移动 xml 元素?

如何从元素中提取链接?

使用 XSLT 使用从同一输入 XML 中提取的最新日期更新输入 XML

使用 XSLT 匹配和替换 XML 元素的名称/值对

使用 XSLT 将 XML 元素名称转换为驼峰格式

如何从路径中提取名称并将它们添加为 lapply 中列表元素的名称

如何根据元素类型而不是名称或位置从列表列表中提取元素?