【问题标题】:I have xml without root element, how do i select value in the element我有没有根元素的 xml,如何在元素中选择值
【发布时间】:2014-05-21 09:38:21
【问题描述】:

我有没有根元素的xml,如何在元素中选择值。

<id>ABC</abc>
<code>true</true>

如何使用 xsl 从该元素中选择值。

【问题讨论】:

  • 你是如何得到这个 xml 的?看看是否可以在源上修改它以包含根节点。
  • 如果这真的是您的输入,那么它甚至不是远程 XML - 我真的希望这是一个错字,结束标签分别是 &lt;/id&gt;&lt;/code&gt;...
  • 对不起,我写错了 xml
  • ABCtrue

标签: xml xslt xml-parsing xslt-1.0 xslt-2.0


【解决方案1】:

我有没有根元素的xml

如果它没有单个根元素,那么它就不是一个格式良好的 XML 文档,并且没有 XML 解析器能够将其解析为一个。它是一个格式良好的文档片段,因此根据您用于解析 XML 的语言或库,可能有一种方法可以将片段解析为您可以操作的内容。或者,如果您将片段作为文件保存在磁盘上,那么您可以创建一个像这样的包装文档,将片段“包含”为外部实体:

<!DOCTYPE root [
  <!ENTITY frag SYSTEM "fragment.xml">
]>
<root>
  &frag;
</root>

这个现在是一个格式良好的XML文档,如果你解析它,你会得到一个相当于

的树
<root>
  <id>ABC</id>
  <code>true</code>
</root>

XSLT 转换可以以正常方式处理。

【讨论】:

  • 格式不正确。检查您的开始和结束标签!
  • 虽然使用实体的方法是正确的,但只有在“fragment.xml”中的 XML 实际上是一个有效的片段时才有效。 kstubs 是正确的,这有开始 id,结束 abc,开始代码,结束 true。完全无效,因此无法工作。
  • @kstubs 就是这样,我从问题中逐字复制了它,但由于某种原因没有检查它。
【解决方案2】:

看来你的 xml 结构是错误的。这里是工作 xml - xls 示例:LINK

【讨论】:

  • 我知道这个结构是错误的,但我想解决这个问题,我怎样才能得到那个值。
猜你喜欢
  • 2015-08-08
  • 1970-01-01
  • 2020-05-21
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多