如何防止xml转换器将空标签转换为单个标签
我正在使用 javax.xml.transform.Transformer 类将 DOM 源转换为 XML 字符串。我在 DOM 树中有一些空元素,这些元素成为我不想要的标签。
如何防止
变成
?
I'm using javax.xml.transform.Transformer
class to transform the DOM source into XML string. I have some empty elements in DOM tree, and these become one tag which I don't want.
How do I prevent <sampletag></sampletag>
from becoming <sampletag/>
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我也遇到了同样的问题。
这是获得该结果的函数。
I hade the same problem.
This is the function to get that result.
如果您想控制 XML 的格式化方式,请提供您自己的
ContentHandler
将 XML 美化为“文本”。对于接收端(除非是人类)来说,它是否接收
或
并不重要 - 它们都意味着同样的事情。If you want to control how XML is formatted, provide your own
ContentHandler
to prettify XML into "text". It should not matter to the receiving end (unless human) whether it receives<name></name>
or<name/>
- they both mean the same thing.这两种表示方式相当于一个XML解析器,所以没有关系。
如果您想使用 XML 解析器以外的任何东西来处理 XML,那么您最终将需要做大量的工作和 XML 解析器。
The two representations are equivalent to an XML parser, so it doesn't matter.
If you want to process XML with anything else than an XML-parser, you will end up with a lot of work and an XML-parser anyway.
如果您通过需要发送该元素的进程不自动关闭(它不应该),您可以通过在其中放置内容来强制该元素不自动关闭。
PDF 转换器如何处理 XML 注释或处理指令?
If the process you are sending it through NEEDS the element not to be self-closing (which it should not), you can force the element not to be self-closing by placing content inside of it.
How does the PDF converter handle XML comments or processing instructions?
<sampletag>!<--Sample Comment--></sampletag>
<sampletag><?SampleProcessingInstruction?></sampletag>
我在下面尝试防止将空标签转换为单个标签:
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.METHOD,"html")
它保留空标签。
I tried below to prevent transform empty tags into single tag :
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.METHOD,"html")
It's retaining empty tags.