XMLEventWriter:我如何告诉它写入空元素?
我在 javax.xml.stream.XMLEventWriter
或 javax.xml.stream.XMLOutputFactory
中没有看到以某种方式设置以写入空元素的选项(而不是显式的开始和结束元素对)。
我看到 Woodstox 有一个属性可以做到这一点,但它没有标准化。
我是否错过了任何明显的方法来做到这一点?
I do not see an option within javax.xml.stream.XMLEventWriter
or javax.xml.stream.XMLOutputFactory
to set either up in a way so that empty elements are written (instead of explicit start and end element pairs).
I see that Woodstox has a property to do this, but it is not standardized.
Am I missing any obvious way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可能已经知道这一点,但 XMLStreamWriter 确实有方法指定它应该是“真正的”空元素。 XMLEventWriter 缺少较低级别接口所具有的一些部分。
You probably know this already, but XMLStreamWriter does have method for specifying that it should be "real" empty element. XMLEventWriter is missing a few pieces that lower level interface has.
在一些答案和评论中存在一些混乱。
StAX 有两个 API:
XMLStreamReader
和XMLStreamWriter
的“Cursor API”;以及XMLEventReader
和XMLEventWriter
的“Iterator API”;使用
XMLStreamWriterCursor API 可以输出带有单个标记
、 的空元素code>:使用单个标签
输出空元素,不可能使用Iterator API使用XMLEventWriter
,据我所知。在这种情况下,您只能生成一个带有两个标签
的空元素:In several of the answers and comments there is some confusion.
StAX has two APIs:
XMLStreamReader
andXMLStreamWriter
; andXMLEventReader
andXMLEventWriter
;Outputting an empty element with a single tag,
<example/>
, is possible with the Cursor API usingXMLStreamWriter
:Outputting an empty element with a single tag,
<example/>
, is not possible with the Iterator API usingXMLEventWriter
, as far as I know. In this case you're stuck with producing an empty element with two tags<example></example>
:否。
和
之间没有语义差异,并且标准 API 不提供请求方法或其他。No. There is no semantic difference between
<x/>
and<x></x>
and the standard APIs do not provide a way to request one or the other.设置属性以便生成空标签,如
与 WoodStox API 配合使用:我想要在 XML 标签中缩进。 setIndentation 方法既不适用于 javax.xml.stream.XMLOutputFactory 也不适用于 org.codehaus.stax2.XMLOutputFactory2
Setting property so that empty tags are generated like
<x/>
works with WoodStox APIs:I wanted indentation in XML tags. the setIndentation method is working with neither javax.xml.stream.XMLOutputFactory nor org.codehaus.stax2.XMLOutputFactory2