当前位置: 首页 > 面试题库 >

发现无效的XML字符(Unicode:0xc)

徐峰
2023-03-14
问题内容

使用Java DOM解析器解析XML文件将导致:

[Fatal Error] os__flag_8c.xml:103:135: An invalid XML character (Unicode: 0xc) was found in the element content of the document.
org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xc) was found in the element content of the document.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)

问题答案:

即使将数据封装在CDATA块中,XML文档中也不允许使用一些字符。

如果生成了文档,则需要对文档进行 实体编码或 剥离。如果您有错误的文档,则应先删除这些字符,然后再尝试对其进行解析。

请参阅此线程中的dolmens答案:XML中的无效字符

他链接到本文的位置:http :
//www.w3.org/TR/xml/#charsets

基本上,除0x9(TAB),0xA(CR?),0xD(LF?)外,所有0x20以下的字符都是不允许的



 类似资料:
  • 总之,我正在尝试解析中的xml。但是XMLSpy告诉我xml的格式不好。 我相信这xml中包含了一些无效字符()。因为如果我把它拿走。XMLSpy的验证已通过。我认为UTF-8编码不允许这种字符。但是如果我真的想加入这种角色呢。我应该应用哪种编码?谢谢

  • 问题内容: 我正在处理一些XML,其中包含以下字符串: 有的,我传递给各节点的字符串将有字符,如,,,等: 由于,此无效。 我无法将这些字符串包装在CDATA中,因为它们必须保持原样。我试图寻找一个字符列表,这些字符如果不包含在CDATA中就不能放入XML节点中。 有人可以指出我的方向或向我提供一系列非法字符吗? 问题答案: 唯一的非法字符,并且(和或在属性)。 他们使用XML实体进行了转义,在这

  • 问题内容: 我有一个XML文件,它是数据库的输出。我正在使用Java SAX解析器来解析XML并以其他格式输出它。XML包含一些无效字符,并且解析器抛出诸如“无效Unicode字符(0x5)”之类的错误 除了逐行预处理文件并替换它们之外,是否有一种很好的方法可以去除所有这些字符?到目前为止,我遇到了3个不同的无效字符(0x5、0x6和0x7)。这是一个约4gb的数据库转储,我们将对其进行大量处理,

  • 问题内容: 在Java上解析xml文件时出现错误: xml来自Web服务。 问题是,仅当Web服务在本地主机(Windows + tomcat)上运行时才出现错误,而当Web服务在线(linux + tomcat)时却没有。 如何替换无效的字符?谢谢。 问题答案: 固定此代码:

  • 我需要序列化一个包含字符串的文档,如

  • 抱歉,目前我尚未完成这个主题,请稍后再来。 (译注:C++对unicode的支持不是特别重视)