我谷歌搜索了很多,并且无法弄清楚如何删除特定子节点中的特定属性。在这个例子中,我想删除" name"属性,但仅限于" alternate"父项 - 不是其他任何地方。在此示例中,请保留" name"例如,参考属性,但删除备用.....下的那些属性。
从这个XML开始
<products>
<product id="123456">
<alternate-products>
<alternate>
<number>2002</number>
<name>2002</name> <-- want to remove this one
</alternate>
<alternate>
<number>2002</number>
<name>2002</name> <--- remove this one too
</alternate>
</alternate-products>
<references>
<reference>
<name>2002</name> <-- keep this one - not under alternate
<date>2002</date>
</reference>
</references>
</products>
所需的XML:
<products>
<product id="123456">
<alternate-products>
<alternate>
<number>2002</number>
</alternate>
<alternate>
<number>2002</number>
</alternate>
</alternate-products>
<references>
<reference>
<name>2002</name> <-- still there - good!
<date>2002</date>
</reference>
</references>
</products>
任何人都可以提供一些提示吗?
答案 0 :(得分:1)
我想删除“name”
属性元素,但仅限于“alternate”下 父项 - 不是其他任何地方。
容易做到:
XSLT 1.0
function shoCount() {
if (count == 1) {
document.getElementById("test").innerHTML = "A";
} else if (count == 2) {
document.getElementById("test").innerHTML = "B";
} else if (count > 2) {
alert('invalid');
}
}
答案 1 :(得分:-2)
你可以试试这个:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Identity Transformation -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="alternate/name"/>
</xsl:stylesheet>