-
DOM解析UTF-8编码的xml文件时出错5
xml文件头为:<?xml version="1.0" encoding="UTF-8"?>
保存时选择的编码方式也是UTF-8,利用DOM解析时报这样的错误:
org.xml.sax.SAXParseException: Document root element is missing.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:501)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208)
at com.file.XmlParse.Parse(XmlParse.java:33)
at com.file.XmlParse.main(XmlParse.java:70)
谁能告诉我应该怎么处理这种错误呢,要求xml文件头和编码方式都必须是UTF-8不能变,在这里先谢谢了。
我试过,如果xml文件头改为:<?xml version="1.0" encoding="GBK"?>,编码方式改为ANSI,则能够正常解析中文。
2013年4月22日 13:27
4个答案 按时间排序 按投票排序
-
采纳的答案
有些编辑器,比如windows的记事本在保存utf8时,会加上bom。
可能是导致那个异常的原因。
基本上你需要换个编辑器,保存时有without bom选项的即可。
比如notepad ++
eclipse的文本编辑器也是不会加bom的。
参考http://daimojingdeyu.iteye.com/blog/3976612013年4月22日 13:49
-
保存文件时选择 UTF-8保存 如使用editplus 文件--另存为时选择字符集
即你文件默认可能是ANSI 但是以utf-8读就会有问题2013年4月22日 13:32
-
要是使用eclipse 文件右击(package视图)properties --> resources --> 选择text file encoding选择编码为你想要的编码即可
2013年4月23日 16:17
相关推荐
- JavaScript中的字符串处理,如DOM操作、AJAX请求等,应确保字符串是以UTF-8编码的。 - AJAX请求时,设置Content-Type头为UTF-8,例如: ```javascript xhr.setRequestHeader("Content-Type", "application/x-...
在UTF-8编码中,BOM是可选的,但某些编辑器如记事本默认会添加。 当XML文件以UTF-16编码并包含BOM头时,DOM4J在解析过程中可能会遇到问题,因为DOM4J默认并不期望XML文档以这种方式开始。这可能导致解析异常,例如`...
UTF-8编码是国际上广泛使用的多语言字符集,确保系统能正确处理各种语言的文本。 【描述】描述虽然简洁,但我们可以推断这个"小刀php网站自动收录"是一个PHP脚本,设计用于自动化网站内容向搜索引擎的推送过程。这...
- XML文件的编码:确保读写时的字符编码一致,通常使用UTF-8。 - 错误处理:解析XML时,应处理可能出现的异常,如文件不存在、格式错误等。 - 命名规则:XML元素和属性的名称应遵循特定的命名规则,不能以数字...
3. **错误处理**:在读取或写入XML文件时,需要捕获并处理可能出现的编码错误,例如不一致的编码声明或无法转换的字符。 4. **DOM vs SAX**:解析XML有DOM(Document Object Model)和SAX(Simple API for XML)两种...
在VS中,确保源文件编码与XML文件一致,并在连接数据库时指定UTF-8编码: ```cpp sqlite3_open("database.db", &db); sqlite3_exec(db, "PRAGMA encoding = 'UTF-8';", NULL, NULL, &errMsg); ``` 此外,确保在...
`和`doc->put_encoding(L"UTF-8");` 4. 创建元素:使用`IXMLDOMDocument`的`createElement`方法创建XML元素,例如`IXMLDOMElement* element = doc->createElement(L"elementName");` 5. 添加属性和子元素:通过`...
在PHP端,生成XML文件时,为了保证中文字符的正确显示,通常建议使用UTF-8编码。可以通过在创建DOM对象时指定编码,如`$dom_XML = new DOMDocument('1.0', 'UTF-8');`,这里的第二个参数指定了XML声明部分的编码。...
- **声明字符编码**:`<?xml version="1.0" encoding="UTF-8"?>`。 #### 服务器上的XML - **处理大量数据**:服务器端可以解析和生成XML文档。 - **安全性考虑**:保护敏感数据不被未经授权的访问。 #### XMLDOM...
XML文档的编码可以在文档声明中指定,如`<?xml version="1.0" encoding="UTF-8"?>`。当读取XML时,应确保解析器使用与文件相同的编码。在Java中,可以使用`InputStreamReader`和指定的编码打开文件,或者在`...
`setRequestHeader`用来设置请求头,确保数据以UTF-8编码发送。`send`方法发送请求,如果第三个参数设为`false`,则请求是同步的,意味着JavaScript会阻塞直到请求完成。 当请求完成后,我们可以通过`status`属性...
对于中文字符串的处理,XML文档需要遵循UTF-8或者GB2312等支持中文字符编码的规则。在生成XML时,必须指定正确的字符编码,确保中文字符能被正确地序列化。在解析XML时,解析器需要识别并解码这个编码,以便正确地...
- 创建临时文件用于转换过程中的中间存储,使用UTF-8编码进行输出。 - 使用`OutputStreamWriter`将转换后的HTML内容写入到临时文件中。 2. **Tidy参数配置**: - `setXmlOut(true)`:设置输出格式为XML。 - `...
TinyXML完全支持UTF-8编码和前64k个字符实体(译注:如果你不明白这句译文,可能你需要了解一下Unicode编码)。 它无法做些什么 TinyXML不解析不使用DTDs(文档类型定义)或者XSLs(可扩展样式表语言)。有其它...
在发送请求时,可以使用`setRequestHeader`方法指定Content-Type,以确保数据以UTF-8编码发送: ```javascript var xhr = new XMLHttpRequest(); xhr.open('POST', '/your-endpoint', true); xhr.setRequestHeader...
- 在处理XML时,确保正确处理可能的编码问题,比如UTF-8、GBK等。 - 为了避免出现错误,最好使用异常处理结构来捕获可能出现的错误。 - 如果XML文件较大或结构复杂,可能需要使用更高效的方法来解析和操作,例如...
8. **编码与解码**:XML文件通常使用UTF-8编码,解析和生成XML时需要注意编码问题,确保数据正确无误地传输。 9. **安全性**:防止XML注入攻击,确保输入的数据在解析前进行适当过滤和转义。 10. **XML与Web服务**...
5. **编码处理**:XML文档可以采用不同的字符编码,如UTF-8、ISO-8859-1等。CXml类可能包含了处理不同编码的功能,确保数据正确读写。 6. **错误处理**:在解析或操作XML文档时可能会遇到错误,如语法错误、非法...