如何创建一个带有空字符串值的XML文本节点(在Java中)

前端之家收集整理的这篇文章主要介绍了如何创建一个带有空字符串值的XML文本节点(在Java中)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用一个Transform对象来保存我的 XML文件,但是似乎丢弃了空文本节点.有没有办法创建(并保留)一个空字符串的文本节点,即“”.

这是我如何创建节点:

Element type = doc.createElement("TYPE");

type.appendChild(doc.createTextNode(value));

只是有时,值为空字符串“”.当我用文本编辑器查看XML时,我看到

<TYPE />

代替

<TYPE></TYPE>

在我读取这个XML文件并遍历节点之后,< TYPE>元素根本没有任何孩子,即使我明确地创建了一个#text节点!

编辑 – 感恩节快乐(对我的同事加拿大人)

重要的注意事项,我不是从一组已知的标签中工作,而是我正在使用的程序使用文本节点的存在将JTextField分配给GUI.只是有时这个字段是空的(不是null而是“”).当我存储该字段然后读回时,GUI不再呈现JTextField,因为没有文本节点.所以我正在寻找创建XML文档的方法来创建一个文本节点,即使它没有任何内容.如果这根本不能用XML完成,那么我将不得不使用属性标记可编辑的标签(有点像Andrey Breslav建议的),因此应该分配一个JTextField.

我会尝试疯狂的汉森建议一个不间断的空间.

没有文本的文本节点不是文本节点.

如果您尝试控制XML元素如何序列化,< TYPE />和< TYPE>< / TYPE>是等效的,如果使用了一个XML处理器,这并不重要.两者都声明没有任何text()的TYPE元素.大多数处理器将串行化一个空元素作为自我关闭元素.

如果你真的想防止这个元素被序列化为自我关闭,你可以很可爱,并添加零宽度的空间作为文本节点值:< TYPE>&#x200B;< / TYPE>它将如下所示:< TYPE>< / TYPE&gt ;. 在技​​术上它不是一个“空”字符串,但是可以实现你想要的,如果选择和使用文本节点,则不会用空格填充.

猜你在找的XML相关文章