xsl转化xml为另一个xml并添加新的属性

作者: Arvin Chen 分类: XML 来源: Break易站(www.breakyizhan.com)

xsl转化xml为另一个xml并添加新的属性 。我们经常会遇到给新的xml转化成另一个xml,而另外的xml中要加入对应的属性,那么我们这个时候就应该用到element和attribute的结合使用了。

比如xml是下面这个,还是上一个章节里面的xml

<Request reference = "location">
<OriginDestinationInformation>
<ArrivalDateTime>2017-09-17TAny</ArrivalDateTime>
<OriginLocation CodeContext="IATA" LocationCode="HK"/>
<DestinationLocation CodeContext="IATA" LocationCode="Singapore"/>
</OriginDestinationInformation>
<OriginDestinationInformation>
<DepartureDateTime>2017-09-20TAny</DepartureDateTime>
<OriginLocation CodeContext="IATA" LocationCode="SIN"/>
<DestinationLocation CodeContext="IATA" LocationCode="HKG"/>
</OriginDestinationInformation>
</Request>

我们要复制OriginDestinationInformation这个节点,也可以更换名字,然后把reference这个属性传给这个节点,那么,我们应该这么写我们的XSL

<xsl:template match="/Request/OriginDestinationInformation" mode="addAttribute">
<xsl:element name= "locationinformation">
<xsl:copy-of select="/Request/OriginDestinationInformation/@*"> <!--复制所有的属性-->
<xsl:copy-of select="/Request/OriginDestinationInformation/*"> <!--复制所有的节点-->
<xsl:attribute name = "reference" select = "../@reference"> <!--增加新的属性-->
<newnode>value</newnode> <!--增加新的节点-->
</xsl:element>
</xsl:template>

然后用call-template调用,就可以获得对应的template了

<xsl:call-template match="/Request/OriginDestinationInformation" mode="addAttribute"/>

本文内容来自:xsl转化xml为另一个xml并添加新的属性 – Break易站


---Author: Arvin Chen ---Web Address: www.breakyizhan.com (Break易站)

  •   本文标题:xsl转化xml为另一个xml并添加新的属性 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/xml/383.html

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注