使用 xslt 选择特定子元素节点树进行输出
我有一些带有额外元素的 XML,我希望它消失。输入 XML:
<top><middle><bottom><!-- other elements --><stuff/></bottom></middle></top>
所需输出:
<top><bottom><!--other elements --><stuff/></bottom></top>
(注意“中间”元素已从节点树中截取)
如何任意截取一个元素,而不必为源中每个可能的元素创建模板级联?有没有办法从给定点传递所有元素和子元素?包括XML标记、属性和内容?
我所做的搜索提到使用
但它不起作用 - "node()|@*"
仅返回内容和属性值,并且不是实际的子元素 XML 树。
如何在 XSLT 1 或 2 中执行此操作?我现在这样做的方法是为每个元素创建一个模板树,但“东西”?
I have some XML that has an extra element and I want it gone. Input XML:
<top><middle><bottom><!-- other elements --><stuff/></bottom></middle></top>
Output desired:
<top><bottom><!--other elements --><stuff/></bottom></top>
(note "middle" element has been snipped from the node tree)
How do I arbitrarily snip out an element without having to create a template cascade of every possible element in the source? Is there a way to just pass all elments and subelements from a given point? including the XML tagging, attributes and content?
Searches I've done mention using <xsl:copy>
but it doesn't work - "node()|@*"
only returns the content and attribute value and not the actual subelement XML tree.
How do I do this in XSLT 1 or 2? The way I am doing it now is to create a template tree for each element but the "stuff"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用身份转换并覆盖要删除的元素:
Use the Identity Transform with an override for the elements you want to remove: