xml – Xslt:将节点添加到根元素
发布时间:2020-12-16 22:42:47 所属栏目:百科 来源:网络整理
导读:我有简单的 XML文件: MyRoot Value key="TARGET"foo/Value Value key="MODEL"bar/Value Value key="MANUFACTURER"bla/Value/MyRoot 我想使用XSLT向MyRoot添加一个Value节点.我无法弄清楚如何. 结果应该是: MyRoot Value key="TARGET"foo/Value Value key="
我有简单的
XML文件:
<MyRoot> <Value key="TARGET">foo</Value> <Value key="MODEL">bar</Value> <Value key="MANUFACTURER">bla</Value> </MyRoot> 我想使用XSLT向MyRoot添加一个Value节点.我无法弄清楚如何. 结果应该是: <MyRoot> <Value key="TARGET">foo</Value> <Value key="MODEL">bar</Value> <Value key="MANUFACTURER">bla</Value> <Value key="NEWNODE">yeahIMadeIt</Value> </MyRoot> 到目前为止我所拥有的是: <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="/"> <xsl:apply-templates select="@* | *"/> <Value key="NEWNODE">yeahIMadeIt</Value> </xsl:template> 但是这会将新的Value节点放在根节点下: <MyRoot> <Value key="TARGET">foo</Value> <Value key="MODEL">bar</Value> <Value key="MANUFACTURER">bla</Value> </MyRoot> <Value key="NEWNODE">yeahIMadeIt</Value> 解决方法
你走在正确的轨道上.您需要更改模板匹配.尝试:
<xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()" /> </xsl:copy> </xsl:template> <xsl:template match="MyRoot"> <xsl:copy> <xsl:apply-templates select="@* | node()" /> <Value key="NEWNODE">yeahIMadeIt</Value> </xsl:copy> </xsl:template> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |