1
薩克斯解析XML文件有一些問題。這裏有 Java使用sax解析xml文件。無法獲得正確的內容時,出現&
的Java代碼這樣的代碼
的某些部分:boolean rcontent = false;
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if (qName.equalsIgnoreCase("content")) {
rcontent = true;
}
}
@Override
public void characters(char ch[], int start, int length) throws SAXException {
if (rcontent){
System.out.println("content: " + new String(ch, start, length));
rcontent = false;
}
}
但輸出是:
我想說
這是不完整的。
乾杯!它工作得很好!但爲什麼字符(...)被多次調用一個標籤?這是因爲它滿足並且它有最大的尺寸嗎? –
閱讀[javadocs](https://docs.oracle.com/javase/7/docs/api/org/xml/sax/helpers/DefaultHandler.html#characters(char [],%20int,%20int))其中指出字符數據是「分塊」的。通常這樣做是爲了避免在內存中不必要地使用大字符數組。我猜不同的薩克斯解析器可以選擇不同的塊來區分字符,所以你不應該依賴分塊實現。 –