如何创建一个带有空字符串值的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>​< / TYPE>它将如下所示:< TYPE>< / TYPE> ;. 在技??术上它不是一个“空”字符串,但是可以实现你想要的,如果选择和使用文本节点,则不会用空格填充. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |