使用 XSLT 删除 XML 节点 [英] Removing XML Nodes using XSLT
本文介绍了使用 XSLT 删除 XML 节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下 XML:
<?xml version="1.0" encoding="utf-8"?>
<Rowsets>
<Rowset>
<Columns>
<Column Description="FirstName" MaxRange="1" MinRange="0" Name="FirstName" SQLDataType="12" SourceColumn="FirstName"/>
<Column Description="LastName" MaxRange="1" MinRange="0" Name="LastName" SQLDataType="12" SourceColumn="LastName"/>
<Column Description="Phone" MaxRange="1" MinRange="0" Name="Phone" SQLDataType="1" SourceColumn="Phone"/>
</Columns>
<Row>
<FirstName>Michael</FirstName>
<LastName>David</LastName>
<Phone>1234567890</Phone>
</Row>
<Row>
<FirstName>David</FirstName>
<LastName>Michael</LastName>
<Phone>01234567890</Phone>
</Row>
<Row>
<FirstName>Yang</FirstName>
<LastName>Christina</LastName>
<Phone>2345678901</Phone>
</Row>
<Row>
<FirstName>Grey</FirstName>
<LastName>Meredith</LastName>
<Phone>3456789012</Phone>
</Row>
<Row>
<FirstName>David</FirstName>
<LastName>Shepherd</LastName>
<Phone>5678901234</Phone>
</Row>
</Rowset>
我想从每一行和列描述中删除
节点.
I want to remove <Phone>
node from every Row as well as from Column description.
因此,我生成的 XML 将如下所示:
SO my resultant XML would look like following:
<?xml version="1.0" encoding="utf-8"?>
<Rowsets>
<Rowset>
<Columns>
<Column Description="FirstName" MaxRange="1" MinRange="0" Name="FirstName" SQLDataType="12" SourceColumn="FirstName"/>
<Column Description="LastName" MaxRange="1" MinRange="0" Name="LastName" SQLDataType="12" SourceColumn="LastName"/>
</Columns>
<Row>
<FirstName>Michael</FirstName>
<LastName>David</LastName>
</Row>
<Row>
<FirstName>David</FirstName>
<LastName>Michael</LastName>
</Row>
<Row>
<FirstName>Yang</FirstName>
<LastName>Christina</LastName>
</Row>
<Row>
<FirstName>Grey</FirstName>
<LastName>Meredith</LastName>
</Row>
<Row>
<FirstName>David</FirstName>
<LastName>Shepherd</LastName>
</Row>
</Rowset>
我如何做到这一点?我尝试了各种 XSLT,但我无法做到.
How do I achieve that? I tried various XSLT but I am not able to do it.
推荐答案
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Column[@SourceColumn='Phone']|Phone" />
</xsl:stylesheet>
这篇关于使用 XSLT 删除 XML 节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文