【问题标题】:remove root tag from xml using xslt使用 xslt 从 xml 中删除根标签
【发布时间】:2017-01-21 11:38:48
【问题描述】:

我有一个这样的 xml 文件

<root>
<level1>data</level1>
<level1>data</level1>
.
.
.
<level1>data</level1>
<level1>data</level1>
</root>

我想使用 xslt 删除根标记。谁能帮我? 我的问题是我有多级 1 数据。

感谢您的帮助

【问题讨论】:

  • 如果您删除根元素,您最终会得到一个看起来像 XML 文档但实际上不是的东西。你确定这就是你想要的吗?
  • 是的,我确定。对于一些处理,我应该这样做

标签: xml xslt wso2 root


【解决方案1】:

如果您确定这是您想要做的,您可以通过以下方式完成:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/root">
    <xsl:copy-of select="node()"/>
</xsl:template>

</xsl:stylesheet>

但是,我不能过分强调这一点:您的示例中的结果将是 XML fragment,而不是 well-formed XML document

【讨论】:

  • 它给了我这个错误“非法拥有多个根”我该怎么办?
  • “它”到底是什么?您使用的是哪个处理器?
  • 我正在使用 wso2 esb,并更改一个代理的输出
  • 这不是 XSLT 处理器。我猜这个错误不是来自 XSL 转换本身,而是来自处理链中的下一个步骤——这正是我警告你的。
  • 但是它给了我错误,但它在其他代码中对我有帮助。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多