[英]not able to parse tags using sax parser
以下是我的xml:
<Body>
<tag1 xmlns=""> <innerTag></innerTag> </tag1>
</Body>
問題是我無法在<tag1></tag1>
獲取字符串,即<innerTag></innerTag>
。 以下是我的邏輯:
public void startElement(final String uri, final String localName,
final String qName, final Attributes attributes)
throws SAXException {
if ("tag1".equalsIgnoreCase(qName)){
inTag1 = true;
System.out.println("start");
}
}
public void endElement(final String uri, final String localName,
final String qName) throws SAXException {
if ("tag1".equalsIgnoreCase(qName)) {
System.out.println("end");
inTag1 = false;
}
}
public void characters(final char[] ch, final int start, final int length) {
if (inTag1) {
System.out.println("@@@" + new String(ch, start, length));
}
}
}
但這給了我空的輸出。 誰能幫忙。
在您對UVM答案的評論中,您寫了
實際上,內部標記是該xml中的一種xml。 所以我希望整體上
沒有辦法告訴SAX解析器不要處理元素中的所有XML並以字符串形式返回整個內容。 本質上,您有兩個選擇:
如果您要控制XML文檔,請嘗試將其格式更改為類似
<Body> <tag1 xmlns=""><![CDATA[ <innerTag></innerTag> ]]></tag1> </Body>
您需要檢查"tag1"
"innerTag"
if ("innerTag".equalsIgnoreCase(qName)){
inTag1 = true;
System.out.println("start");
}
基本上,您的innerTag是tag1的子元素。因此,SAX解析器會繼續對其進行解析,因為對於它而言,直到有效的XML元素為止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.