Dom4j 如何将这样的字符串转换为XML
1个回答
展开全部
加了冒号,字符a会被当成命名空间来使用,但由于没有先声明命名空间再使用,所以会出现异常,可加下声明,具体如下:
<a:A xmlns:a="http://www.w3.org/TR/html4/">
<a:B></a:B>
</a:A>
建议楼主先熟悉下XML的相关知识、再深入看下Dom4J的文档解析处理的相关源代码,org.dom4j.DocumentHelper.parseText()低层实际是采用Xerces(apache组织接管的一个开放源代码的XML语法分析器,从JDK1.5以后,Xerces就成了JDK的XML默认实现)来处理,
关于楼主的疑问,楼主只需要完成以下几件事件就可以解决心中的疑问了。
一、了解XML的相关规范(以1.0版本为主吧),如元素命名规范,命名空间规范、可参考:
http://www.w3school.com.cn/xml/xml_elements.asp
http://www.w3school.com.cn/xml/xml_namespaces.asp
二、可以详细看下Xerces组件对于XML文档解析相关的几个关键类:
1、com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl XML文档扫描器(文档头声明等信息扫描解析),负责文档解析
可以看下关键方法scanDocument(boolean complete),注意该方法继续自XMLDocumentFragmentScannerImpl
2、com.sun.org.apache.xerces.internal.impl.XMLEntityScanner XML文档内容扫描器(文档标签、属性等信息扫描解析)
可以看下scanName()方法
3、XMLChar XML字符,该类主要是规范XML的字符范围、有效性等。关键方法有isNameStart(判断元素名首字符是否合法),isName(是否有效的元素名(单字符))
isValidName(是否有效的元素名(整个元素名称))
解析XML文档,无非就是获取文档内容、扫描并解析(当然,其实涉及到XML文件规范,其实也相当复杂的=。=)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询