2009-09-06 48 views
0

我寫了一個SAX解析器。當屬性值嵌套在雙引號中時,它工作正常。但是,如果我不使用引號,它會引發異常。我希望解析器解析屬性值不在引號內的XML文件。 我想分析以下類型的文件:解析java中的XML文件

<root> 
    <tag1 attribute1=value1 > my data </tag1> 
</root> 

注意,值1是不是引號內

我可以讓我的解析器來解析上述文件?如果是的話如何?

回答

6

SAX解析器不會讀取它,因爲它不是well-formed XML。所有屬性值都需要用單引號或雙引號引起來。

爲了讓你的解析器讀取它,你會發現必須整理/淨化/修復它與相關的庫。

+0

事實上,XML格式不正確。有效性是指針對DTD,XSD或應用於XML的任何其他類型的語法約束進行驗證。 –

+0

我的意思是'額外的限制'...對不起。 –

0

嘗試NekoHTML(http://nekohtml.sourceforge.net/usage.html

例如

package sample; 

import org.apache.xerces.parsers.AbstractSAXParser; 
import org.cyberneko.html.HTMLConfiguration; 

public class HTMLSAXParser extends AbstractSAXParser { 
    public HTMLSAXParser() { 
     super(new HTMLConfiguration()); 
    } 
}