我需要创建一个XML片段,我正在使用Java DOM。
我能找到的任何文档都说明可以使用 Element.setTextContent(),如下所示:
Integer someValue = 5;
Element element = myMethodCreatingTheElement();
element.setTextContent(String.valueOf(someValue));
我的问题是:是否足以依赖 String.valueOf()在XML中正确表示相应的值?
提前致谢,
答案 0 :(得分:3)
您可以使用javax.xml.bind.DatatypeConverter
将XML文本转换为Java数据类型(从Java SE 6开始,转换为JDK / JRE的一部分)。这将确保正确处理有关文本表示的XML特定事项。
答案 1 :(得分:1)
尝试jsoup它也很好Java DOM
答案 2 :(得分:1)
是否足以依赖String.valueOf()在XML中正确表示相应的值?
DOM是XML文档的抽象数据模型。当您调用setTextContent()
时,您正在设置元素的值(严格来说,您要将元素的子元素设置为具有指定值的单个文本节点)。当您将DOM树作为XML文档编写时,序列化程序的工作是确保以正确的表示输出所有值。
只要您设置的值不包含XML中禁止的任何字符(除了制表符,换行符和回车符或未配对的代理人之外,控制U + 0020以下的字符)那么您会没事的,序列化程序将为您执行任何必要的转义。
对于String.valueOf
本身,其原始类型转换为字符串的规则在JavaDoc文档中有详细说明。如果您要转换覆盖char
的{{1}},char[]
或Object
,则上述关于避免非法字符的警告,toString
生成的值将会在XML中始终是合法的。
答案 3 :(得分:0)