Java 解析XML文件时如何忽略空格和换行符
如何在解析XML文件时忽略空白。它总是再次调用Java 解析XML文件时如何忽略空格和换行符,java,xml,xml-parsing,whitespace,removing-whitespace,Java,Xml,Xml Parsing,Whitespace,Removing Whitespace,如何在解析XML文件时忽略空白。它总是再次调用characters(…)方法,而在结束元素后面紧跟着'\n'或'\r',因此它调用此方法两次,而不是只调用一次。针对DTD解析文档的SAXParser在元素内容中遇到空白时调用ignorableWhitespace()。例如,如果这个XML片段 <ol> <li>one</li> <li>two</li> </ol> 一个 两个 根据此DTD片段分析: <
characters(…)
方法,而在结束元素后面紧跟着'\n'
或'\r'
,因此它调用此方法两次,而不是只调用一次。针对DTD解析文档的SAXParser在元素内容中遇到空白时调用ignorableWhitespace()
。例如,如果这个XML片段
<ol>
<li>one</li>
<li>two</li>
</ol>
一个
两个
根据此DTD片段分析:
<!ELEMENT ol (li+)>
<!ELEMENT li (#PCDATA)>
SAXParser将调用字符(…)
来表示“一”
和“二”
,并调用ignorableWhitespace(…)
来表示元素之间的所有空白
还要注意,这仅适用于针对DTD的解析。使用模式时,不会调用
ignorablewitspace(…)
(即使有相同类型的信息可用)。大多数XML
解析器自行处理此问题。顺便说一句,您正在使用哪个解析器?我使用这个解析器:javax.xml.parsers.SAXParser。我知道有一个函数叫做ignorableWhitespaces(…),但我不知道如何使用这个函数,也不知道它到底是做什么的。好的,谢谢,但这并没有解决我的问题。给定XML文件中的my元素之间有空格,例如。。。。(用点标记)和always characters()在本例中被调用。通过一个简单的返回解决了这个问题:if(content.length()==0)return;//忽略空白