如何在xsl中使用self::删除节点?
例如下面是我的 xsl 中的 xml
<products>
<product>
<name>Pen</name>
<Quantity>2</Quantity>
<Amount><Price>2</Price><Currency>USD</Currency></Amount>
</product>
<product>
<name>Pencil</name>
<Quantity>20</Quantity>
<Amount><Price>2</Price><Currency>USD</Currency></Amount>
</product>
<product>
<name>Bag</name>
<Quantity>25</Quantity>
<Amount><Price>2</Price><Currency>USD</Currency></Amount>
</product>
</products>
,我使用如下所示的方法删除
<xsl:copy-of select="node()[not(self::Quantity)]"/>
我还需要从
中删除子节点
我尝试如下
<xsl:copy-of select="node()[not(self::Quantity) and not(self::Amount/Currency)]"/>
但工作不正常。它将从
中删除所有节点
我如何仅删除子节点
?
for example below is the xml
<products>
<product>
<name>Pen</name>
<Quantity>2</Quantity>
<Amount><Price>2</Price><Currency>USD</Currency></Amount>
</product>
<product>
<name>Pencil</name>
<Quantity>20</Quantity>
<Amount><Price>2</Price><Currency>USD</Currency></Amount>
</product>
<product>
<name>Bag</name>
<Quantity>25</Quantity>
<Amount><Price>2</Price><Currency>USD</Currency></Amount>
</product>
</products>
in my xsl i using like below to remove
<xsl:copy-of select="node()[not(self::Quantity)]"/>
I also need to remove sub node <Currency>
from the <Amount>
i try like below
<xsl:copy-of select="node()[not(self::Quantity) and not(self::Amount/Currency)]"/>
but not working fine . it will remove all node's from <Amount>
How i remove sub node <Currency>
only?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您确实想使用
self
或者如果您想了解其他更简单的方法:)
上述模板复制除
之外的所有其他标签为:(希望它有效)
If you really want to use
self
or if you want to know other simpler way :)
The above templates copy all other tags except
<Currency>
By this: (hope it works)