Xml 在父节点中添加一个新节点,该节点在xslt中用文本更新
我已通过重写子节点更新了XML。现在我需要为标记添加一个新节点 我的XML是:Xml 在父节点中添加一个新节点,该节点在xslt中用文本更新,xml,xslt,Xml,Xslt,我已通过重写子节点更新了XML。现在我需要为标记添加一个新节点 我的XML是: <GrandParent> <Parent> <Child1>test</Child1> <Child2>abc</Child2> <Child3>62</Child3> <Child4>5000061</Child4> </Parent> <Pa
<GrandParent>
<Parent>
<Child1>test</Child1>
<Child2>abc</Child2>
<Child3>62</Child3>
<Child4>5000061</Child4>
</Parent>
<Parent>
<Child1>test</Child1>
<Child2>abc</Child2>
<Child3>33</Child3>
<Child4>5560853</Child4>
</Parent>
</GrandParent>
测试
abc
62
5000061
测试
abc
33
5560853
并更新了第一个标签,如下所示:
<GrandParent>
<Parent>
<Child1>test</Child1>
<Child2>abc</Child2>
<Child3>62</Child3>
<Child3 >dshgfshgfhgf</Child3>
<Child4>5000061</Child4>
</Parent>
<Parent>
<Child1>test</Child1>
<Child2>abc</Child2>
<Child3>33</Child3>
<Child3>dshgfshgfhgf</Child3 >
<Child4>5560853</Child4>
</Parent>
</GrandParent>
测试
abc
62
dshgfshgfhgf
5000061
测试
abc
33
dshgfshgfhgf
5560853
通过使用XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Parent[Child4='5000061']/Child3[.='62']">
<Child3>dshgfshgfhgf</Child3>
</xsl:template>
</xsl:stylesheet>
dshgfshgfhgf
现在我想在两个父标记中添加一个新节点。如何在不干扰当前代码的情况下执行此操作
我需要在两个父标记中添加一个新节点
添加与父节点匹配的模板,并在其中添加新节点-例如:
<xsl:template match="Parent">
<xsl:copy>
<xsl:apply-templates/>
<new-node>123</new-node>
</xsl:copy>
</xsl:template>
123
您可能希望编辑问题以使其清晰
只需添加一个新节点
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Parent[Child4='5000061']/Child3[.='62']">
<Child3>dshgfshgfhgf</Child3>
</xsl:template>
<xsl:template match="Parent">
<xsl:copy>
<xsl:apply-templates/>
<new-Child>123</new-Child>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
dshgfshgfhgf
123
Child3节点将仅在满足条件时更改,否则将保持不变。如果您用相同的值替换所有的Child3,那么它将是“父[Child4]/Child3”您可以看到我的版本在这里工作:恐怕我没有时间调试您的。首先您要替换Child3节点吗?xml有2个孩子3