这是我如何创建节点:
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>​< / TYPE>它将如下所示:< TYPE>< / TYPE> ;. 在技术上它不是一个“空”字符串,但是可以实现你想要的,如果选择和使用文本节点,则不会用空格填充.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。