【问题标题】:Java parse XML with question mark tag?Java用问号标记解析XML?
【发布时间】:2018-05-14 06:35:48
【问题描述】:

我想问一些事情。

我发现了一个像这样的 XML。

<row><?TAGS?><?TAG 024?><?END-TAGS?>
<entry colname="COL1">1</entry>
<entry colname="COL2">2</entry>
<entry colname="COL3">3</entry>
</row>

你知道如何获取&lt;?TAGS?&gt; 中的所有 TAG 值吗? 那个 XML 括号 &lt;??&gt; 是干什么用的?

目前我正在使用 JAXB 注释,无法获取这些标签。

谢谢:)

【问题讨论】:

  • 这些&lt;?...?&gt;XML processing instructions。据我所知,JAXB 不支持它们。
  • @ThomasFritsch 该评论应该是一个答案。
  • @ThomasFritsch 所以我不能接受这个值?

标签: java xml parsing xml-parsing jaxb


【解决方案1】:

&lt;?anything?&gt; 部分是XML processing instructions

解组:

据我所知,仅 JAXB 不支持处理指令 在解组期间。他们只是被忽略了。

但是,根据this question的回答 您可以通过将 JAXB 与 StAX 或 SAX 一起使用来获取它们。

编组:

根据this answer 您可以告诉 JAXB 编组器插入您的 XML 处理指令 在 XML 输出的开头。像这样:

Marshaller marshaller = ...;
marshaller.setProperty("com.sun.xml.bind.xmlHeaders",
        "<?TAGS?><?TAG 024?><?END-TAGS?>");

【讨论】:

  • 感谢您的回答。
  • 另一种选择是在解组之前使用 XSLT。您可以使用 XSLT 轻松地将处理指令转换为元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 2011-12-08
  • 2017-11-27
  • 2018-06-16
  • 2014-05-22
  • 2011-02-12
相关资源
最近更新 更多