使用XSLT根据XML中的其他节点更改节点的值

时间:2014-03-03 09:32:58

标签: xml xslt

我想更改某个节点的值。 变更条件的条件如下:

如果节点名称为“Name1”且关键字为n1,则更改为n2 如果节点名称为“Name1”且关键字为g1,则更改为g2

<maindata>
<data>
 <keyword>n1</keywod>
 <keyword>g1</keyword>
</data>

<name>
<String>Name1</String>
</name>
</maindata>

另外我只是更改上面节点的值,文件的所有其他内容都只是复制,所以我为此编写代码如下:

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

那么我如何编写模板来改变节点值,如上所述?

1 个答案:

答案 0 :(得分:1)

我想你想添加两个模板:

<xsl:template match="maindata[name/String = 'Name1']/data/keyword[. = 'n1']">
  <keyword>n2</keyword>
</xsl:template>

<xsl:template match="maindata[name/String = 'Name1']/data/keyword[. = 'g1']">
  <keyword>g2</keyword>
</xsl:template>