复制元素的所有属性[不仅是属性值,而且是整个属性列表]

用户

我有一种情况,我想从输入XML中的XML标记复制包括名称空间在内的所有属性[这里是指整个属性列表和名称空间列表,而不仅仅是属性的值]。

例如:

输入XML:

<?xml version="1.0" encoding="UTF-8"?>
<enricher>
    <result>
        <xbrl xmlns="http://www.xbrl.org/2003/instance" 
        xmlns:idp-com="http://www.dnb.com/IDP/Common/Vers1" 
        xmlns:idp-enumcom="http://www.dnb.com/IDP/Common/Enumeration/Common/Vers1" 
        xsi:schemaLocation="http://www.dnb.com/IDP/Product/Common/Vers1 ../Common/ProductCommonTaxonomy.xsd 
        http://www.dnb.com/IDP/Common/Vers1 ../../Data/Common/CommonTaxonomy.xsd">
            <context id="defaultI">
                <entity>
                    <identifier scheme="http://www.dnb.com">Text</identifier>
                </entity>
                <period>
                    <instant>2000-07-14</instant>
                </period>
            </context>
        </xbrl>
    </result>
</enricher>

输出XML:

<?xml version="1.0" encoding="UTF-8"?>
<enricher>
    <result>
        <xbrlresp xmlns="http://www.xbrl.org/2003/instance" 
        xmlns:idp-com="http://www.dnb.com/IDP/Common/Vers1" 
        xmlns:idp-enumcom="http://www.dnb.com/IDP/Common/Enumeration/Common/Vers1" 
        xsi:schemaLocation="http://www.dnb.com/IDP/Product/Common/Vers1 ../Common/ProductCommonTaxonomy.xsd 
        http://www.dnb.com/IDP/Common/Vers1 ../../Data/Common/CommonTaxonomy.xsd">
            <context id="defaultI">
                <entity>
                    <identifier scheme="http://www.dnb.com">Text</identifier>
                </entity>
                <period>
                    <instant>2000-07-14</instant>
                </period>
            </context>
        </xbrlresp>
    </result>
</enricher>

输出应具有的<xbrlresp>标签,其中包含的所有名称空间和属性<xbrl>

马蒂亚斯·穆勒(MathiasMüller)

编辑:在您揭示了实际的问题之后,我也更改了样式表。同样,您的输入不是格式正确的XML,因为未定义名称空间:

`xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

XML输入

<enricher>
    <result>
        <xbrl xmlns="http://www.xbrl.org/2003/instance"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:idp-com="http://www.dnb.com/IDP/Common/Vers1" 
        xmlns:idp-enumcom="http://www.dnb.com/IDP/Common/Enumeration/Common/Vers1" 
        xsi:schemaLocation="http://www.dnb.com/IDP/Product/Common/Vers1 ../Common/ProductCommonTaxonomy.xsd 
        http://www.dnb.com/IDP/Common/Vers1 ../../Data/Common/CommonTaxonomy.xsd">
            <context id="defaultI">
                <entity>
                    <identifier scheme="http://www.dnb.com">Text</identifier>
                </entity>
                <period>
                    <instant>2000-07-14</instant>
                </period>
            </context>
        </xbrl>
    </result>
</enricher>

XSLT样式表

样式表是一个简单的身份转换,但有一个例外,即用xbrl新元素替换元素。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
    xmlns:xb="http://www.xbrl.org/2003/instance">

    <xsl:strip-space elements="*"/>
    <xsl:output method="xml" encoding="UTF-8" indent="yes" />

    <xsl:template match="xb:xbrl">
      <xsl:element name="xbrlresp" namespace="http://www.xbrl.org/2003/instance">
        <xsl:apply-templates select="@*|node()"/>
      </xsl:element>
    </xsl:template>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

</xsl:transform>

XML输出

<?xml version="1.0" encoding="UTF-8"?>
<enricher>
   <result>
      <xbrlresp xmlns="http://www.xbrl.org/2003/instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dnb.com/IDP/Product/Common/Vers1 ../Common/ProductCommonTaxonomy.xsd          http://www.dnb.com/IDP/Common/Vers1 ../../Data/Common/CommonTaxonomy.xsd">
         <context xmlns="http://www.xbrl.org/2003/instance" xmlns:idp-com="http://www.dnb.com/IDP/Common/Vers1" xmlns:idp-enumcom="http://www.dnb.com/IDP/Common/Enumeration/Common/Vers1" id="defaultI">
            <entity>
               <identifier scheme="http://www.dnb.com">Text</identifier>
            </entity>
            <period>
               <instant>2000-07-14</instant>
            </period>
         </context>
      </xbrlresp>
   </result>
</enricher>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails-返回嵌套属性的所有值,而不仅仅是“指针”

来自分类Dev

Rails-返回嵌套属性的所有值,而不仅仅是“指针”

来自分类Dev

遍历所有属性,而不仅仅是可枚举的属性

来自分类Dev

ngModel,设置整个对象,不仅是ngOptios的值

来自分类Dev

如何获取不仅是第一个元素的所有元素的数据

来自分类Dev

XPath提供所有属性值,而不仅仅是第一个?

来自分类Dev

是否可以使用CsvHelper序列化字段(不仅是属性)?

来自分类Dev

鼠标悬停事件会影响列表中所有行中的按钮,而不仅是特定按钮上的按钮

来自分类Dev

复制具有所有属性的元素-更新

来自分类Dev

复制具有所有属性的元素-更新

来自分类Dev

jQuery-让选择器更改所有适当的属性,而不仅仅是找到的第一个属性

来自分类Dev

使用C#中的Selenium获取具有特定类的所有元素的属性值的列表

来自分类Dev

获取元素属性列表(值等)

来自分类Dev

XSLT:复制所有XML,但属性包含值的除外

来自分类Dev

在所有内容(不仅是有效路径)之前检查Meteor.user()

来自分类Dev

突出显示整个UIButton,不仅是左侧的图像?

来自分类Dev

jQuery - 用所有元素的新值替换属性值

来自分类Dev

显示所有注册用户(不仅是作者)的简单公共用户配置文件

来自分类Dev

质数函数返回所有数字,不仅是质数

来自分类Dev

Python:字典词典更新数据,不仅是指定的所有数据

来自分类Dev

LibreOffice Writer:如何清除所有格式(不仅是“直接格式”)?

来自分类Dev

在值列表中选择具有属性值的元素

来自分类Dev

从可排序列表中获取所有元素属性

来自分类Dev

如何获取单词(不仅是单词)的有序自动完成列表?

来自分类Dev

获取具有嵌套列表属性的List的所有值

来自分类Dev

更改对象列表中的一个元素属性值也会更改所有元素值

来自分类Dev

如何使用.innnerHTML属性选择元素的所有值

来自分类Dev

查找属性中包含值的所有元素

来自分类Dev

修改RavenDb序列化以包括私有字段,而不仅仅是属性

Related 相关文章

  1. 1

    Rails-返回嵌套属性的所有值,而不仅仅是“指针”

  2. 2

    Rails-返回嵌套属性的所有值,而不仅仅是“指针”

  3. 3

    遍历所有属性,而不仅仅是可枚举的属性

  4. 4

    ngModel,设置整个对象,不仅是ngOptios的值

  5. 5

    如何获取不仅是第一个元素的所有元素的数据

  6. 6

    XPath提供所有属性值,而不仅仅是第一个?

  7. 7

    是否可以使用CsvHelper序列化字段(不仅是属性)?

  8. 8

    鼠标悬停事件会影响列表中所有行中的按钮,而不仅是特定按钮上的按钮

  9. 9

    复制具有所有属性的元素-更新

  10. 10

    复制具有所有属性的元素-更新

  11. 11

    jQuery-让选择器更改所有适当的属性,而不仅仅是找到的第一个属性

  12. 12

    使用C#中的Selenium获取具有特定类的所有元素的属性值的列表

  13. 13

    获取元素属性列表(值等)

  14. 14

    XSLT:复制所有XML,但属性包含值的除外

  15. 15

    在所有内容(不仅是有效路径)之前检查Meteor.user()

  16. 16

    突出显示整个UIButton,不仅是左侧的图像?

  17. 17

    jQuery - 用所有元素的新值替换属性值

  18. 18

    显示所有注册用户(不仅是作者)的简单公共用户配置文件

  19. 19

    质数函数返回所有数字,不仅是质数

  20. 20

    Python:字典词典更新数据,不仅是指定的所有数据

  21. 21

    LibreOffice Writer:如何清除所有格式(不仅是“直接格式”)?

  22. 22

    在值列表中选择具有属性值的元素

  23. 23

    从可排序列表中获取所有元素属性

  24. 24

    如何获取单词(不仅是单词)的有序自动完成列表?

  25. 25

    获取具有嵌套列表属性的List的所有值

  26. 26

    更改对象列表中的一个元素属性值也会更改所有元素值

  27. 27

    如何使用.innnerHTML属性选择元素的所有值

  28. 28

    查找属性中包含值的所有元素

  29. 29

    修改RavenDb序列化以包括私有字段,而不仅仅是属性

热门标签

归档