如何将属性值更改为同级值

苏吉斯·沙吉(Sujith Shajee)

我有一个特殊的要求,我需要用前面的同级节点值更改当前元素的属性值。

当前的XML

<com:row>
<com:new>
    <com:Component ExcludeInd="false">
        <com:CatTypeCode>35</com:CatTypeCode>
        <com:SubCatTypeCode>055508</com:SubCatTypeCode>
        <com:ComCode>1000</com:ComCode>
        <com:VComponentCode>nbr</com:VComponentCode>
        <com:Val Value="sometext">250</com:Val>
    </com:Component>
</com:new>
</com:row>

XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:com="http://www.w3.org/2001/XMLSchema-instance">
   <xsl:output method="xml" indent="yes"/>
    <xsl:template match="../com:Component/com:Val">
          <xsl:element name="com:Val" namespace="http://www.w3.org/2001/XMLSchema-instance">
          <xsl:variable name="myVar" select="preceding-sibling::com:VComponentCode"/>
            <xsl:attribute name="ValueType"><xsl:value-of select="$myVar"/></xsl:attribute>     
             <xsl:apply-templates select="@*|node()"/>
          </xsl:element>
       </xsl:template>
</xsl:stylesheet>

预期的XML

<com:row>
<com:new>
    <com:Component ExcludeInd="false">
        <com:CatTypeCode>35</com:CatTypeCode>
        <com:SubCatTypeCode>055508</com:SubCatTypeCode>
        <com:ComCode>1000</com:ComCode>
        <com:VComponentCode>nbr</com:VComponentCode>
        <com:Val Value="nbr">250</com:Val>
    </com:Component>
</com:new>
</com:row>

当我对值进行硬编码时,可以更改属性中的值,但不能将其作为变量。

har07

假设您具有格式正确的XML输入,则可以尝试以下XSL转换:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:com="http://www.w3.org/2001/XMLSchema-instance">
    <xsl:output method="xml" indent="yes"/>

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

  <xsl:template match="com:Val/@Value">
    <xsl:attribute name="Value">
      <xsl:value-of select="parent::com:Val/preceding-sibling::com:VComponentCode"/>
    </xsl:attribute>
  </xsl:template>
</xsl:stylesheet>

简要说明 :

  • <xsl:template match="@* | node()">:身份模板。该模板将匹配的元素和属性复制到输出XML中,就像在源XML中一样。

  • <xsl:template match="com:Val/@Value">:覆盖元素Value属性的标识模板com:Val代替复制属性以输出该模板,而是Value使用从先前的同级com:VComponentCode元素获取的值来创建新属性

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将字典中的值更改为列表而不是字符串

来自分类Dev

如何将集合中的布尔值更改为与现有值相反的值?

来自分类Dev

如何将numpy数组的某些索引的值更改为0?

来自分类Dev

如何将二进制值更改为具有各个状态的数组

来自分类Dev

如何将日期时间值更改为单独格式化的值

来自分类Dev

如何将seaborn.distplot()中的yticks从标准化值更改为绝对值?

来自分类Dev

Javascript如何将字体属性更改为脚本?

来自分类Dev

如何将列中的值更改为伪值

来自分类Dev

如何将字典中的嵌套值更改为上级键

来自分类Dev

如何将布尔值更改为0或1,可以进行转换吗?

来自分类Dev

在TSQL中将值更改为一个列时,如何将表分成块?

来自分类Dev

如何将样式从rel属性CSS更改为类

来自分类Dev

在android中按下按钮后如何将值更改为“活动”?

来自分类Dev

如何将输出值更改为小数点后两位?

来自分类Dev

创建后,如何将Ruby哈希默认值更改为任意对象?

来自分类Dev

如何将REL属性更改为其他

来自分类Dev

如何将字符串值更改为要在数组中使用的索引值?

来自分类Dev

如何将数值更改为一个单词

来自分类Dev

如果键与值相同,如何将字典中的值更改为“无”

来自分类Dev

如何将2D数组中的每个布尔值更改为相反的值?

来自分类Dev

如何将 MSChart 中的 X 轴值更改为月份名称

来自分类Dev

如何将每个链接的 href 值更改为不同的 url

来自分类Dev

Django - 如何将列的所有值更改为空?

来自分类Dev

如何将单个值更改为向量 - JULIA

来自分类Dev

如何将属性值 UIScrollView.content.contentInsetAdjustmentBehavior 从 AppDelegate 更改为从不?

来自分类Dev

如何将单个属性更改为值字典?

来自分类Dev

如何将数值更改为自定义范围的文本

来自分类Dev

如何将普通方法更改为属性方法

来自分类Dev

如何将值更改为日期格式以及如何将值更改为时间格式

Related 相关文章

  1. 1

    如何将字典中的值更改为列表而不是字符串

  2. 2

    如何将集合中的布尔值更改为与现有值相反的值?

  3. 3

    如何将numpy数组的某些索引的值更改为0?

  4. 4

    如何将二进制值更改为具有各个状态的数组

  5. 5

    如何将日期时间值更改为单独格式化的值

  6. 6

    如何将seaborn.distplot()中的yticks从标准化值更改为绝对值?

  7. 7

    Javascript如何将字体属性更改为脚本?

  8. 8

    如何将列中的值更改为伪值

  9. 9

    如何将字典中的嵌套值更改为上级键

  10. 10

    如何将布尔值更改为0或1,可以进行转换吗?

  11. 11

    在TSQL中将值更改为一个列时,如何将表分成块?

  12. 12

    如何将样式从rel属性CSS更改为类

  13. 13

    在android中按下按钮后如何将值更改为“活动”?

  14. 14

    如何将输出值更改为小数点后两位?

  15. 15

    创建后,如何将Ruby哈希默认值更改为任意对象?

  16. 16

    如何将REL属性更改为其他

  17. 17

    如何将字符串值更改为要在数组中使用的索引值?

  18. 18

    如何将数值更改为一个单词

  19. 19

    如果键与值相同,如何将字典中的值更改为“无”

  20. 20

    如何将2D数组中的每个布尔值更改为相反的值?

  21. 21

    如何将 MSChart 中的 X 轴值更改为月份名称

  22. 22

    如何将每个链接的 href 值更改为不同的 url

  23. 23

    Django - 如何将列的所有值更改为空?

  24. 24

    如何将单个值更改为向量 - JULIA

  25. 25

    如何将属性值 UIScrollView.content.contentInsetAdjustmentBehavior 从 AppDelegate 更改为从不?

  26. 26

    如何将单个属性更改为值字典?

  27. 27

    如何将数值更改为自定义范围的文本

  28. 28

    如何将普通方法更改为属性方法

  29. 29

    如何将值更改为日期格式以及如何将值更改为时间格式

热门标签

归档