加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 07:43:01 所属栏目:百科 来源:网络整理
导读:我正在使用一个Transform对象来保存我的 XML文件,但是似乎丢弃了空文本节点.有没有办法创建(并保留)一个空字符串的文本节点,即“”. 这是我如何创建节点: Element type = doc.createElement("TYPE");type.appendChild(doc.createTextNode(value)); 只是有时
我正在使用一个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 ;. 在技??术上它不是一个“空”字符串,但是可以实现你想要的,如果选择和使用文本节点,则不会用空格填充.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读