2014-03-03 92 views
3

我想更改某个节点的值。 条件变化值如下:使用XSLT根据XML中的其他节点更改节点的值

如果节点名称是“名称1”,如果关键字为n1然后换到n2 如果节点名称是“名称1”,如果关键词是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

我认为你要添加两个模板:

<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> 
+0

感谢马丁...... 其工作 – user3345354

相关问题