【问题标题】:Why i keep getting character ' ' is an invalid XML character when there is no special character visble当没有特殊字符可见时,为什么我不断收到字符“”是无效的 XML 字符
【发布时间】:2021-04-18 19:40:51
【问题描述】:

我正在尝试对带有内容的 docx 文件进行语言环境翻译

Name
Name <emp/100>
AccProd < Tool>
Data <Cont:9000000>
ML <mail@gmail.com>
Alto <TL100>
Test<888>
Address < India>
Mode <AUTO>
Mode <manual>

但我没有得到正确的翻译文件,它一直给出这个错误(belo),但它没有说明它发现哪个字符无效。

org.w3c.dom.DOMException: STRING_TOO_LONG: 
The resulting string is too long to fit in a DOMString: 'The character ' ' is an invalid XML character'.
Caused by: java.io.IOException: The character ' ' is an invalid XML character

代码:

DOMImplementationLS ls = (DOMImplementationLS) document.getImplementation();
LSSerializer ser = ls.createLSSerializer();
String xml = ser.writeToString(currentNode);  ------> this is where is throws exceptions

currentNode = 待翻译文档中的节点

【问题讨论】:

  • currentNode 到底有多大?它有几个孩子?它有多少文本内容?
  • 我的猜测是xml不喜欢使用control character。我们已经看到了与 form feed 字符完全相同的问题。
  • 请说明您要阅读的文件类型。 docx 文件是 Microsoft Word 文件。您的意思是要将 Word 文件解析为 XML?
  • @vanje 我正在解析 docx 文件,它在内部将其转换为 xml 并对其进行处理以输出最终的翻译文件

标签: java dom w3c


【解决方案1】:

我发现问题是由于多个线程尝试访问文档并对其进行序列化,而另一个线程使用带有不完整 xml 数据的文档。 在描述中保持提到的代码在同步块中工作正常,没有奇怪的异常。 因为我是新手,所以它很有学习经验。感谢大家花时间审查我的问题。 @VGR @hooknc @vanje

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2012-03-21
    相关资源
    最近更新 更多