我有这样的XML:
<p>
<p1>DISTRIBUTOR</p1>
<p2>f</p2>
<p3>us</p3>
<p4>5</p4>
<c>
<c1>SOCIAL_MEDIA</c1>
<c2>www.facebook.com</c2>
<c3>facebook</c3>
</c>
<c>
<c1>EMAIL</c1>
<c2>www.gmail.com</c2>
<c3>gmail</c3>
</c>
</p>
我希望使用XSLT以以下方式输出,它基本上是创建其部分的副本:
<p>
<p1>DISTRIBUTOR</p1>
<p2>f</p2>
<p3>us</p3>
<p4>5</p4>
<c>
<p1>DISTRIBUTOR</p1>
<p2>f</p2>
<p3>us</p3>
<p4>5</p4>
<c1>SOCIAL_MEDIA</c1>
<c2>www.facebook.com</c2>
<c3>facebook</c3>
</c>
<c>
<p1>DISTRIBUTOR</p1>
<p2>f</p2>
<p3>us</p3>
<p4>5</p4>
<c1>EMAIL</c1>
<c2>www.gmail.com</c2>
<c3>gmail</c3>
</c>
</p>
任何人都可以帮我吗?我尝试使用要复制但最终使输出混淆的元素使用数组创建。
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="c">
<xsl:copy>
<xsl:copy-of select="/p/node()[starts-with(name(), 'p')]"/>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>