【发布时间】:2012-09-23 09:42:16
【问题描述】:
以下是我的 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));
}
}
}
但它给了我空的输出。谁能帮忙。
【问题讨论】:
-
innerTag是一个元素,不是字符串或文本节点。如果要打印,则必须在startElement和endElement回调中进行。 -
<innerTag>将由startElement处理(结束标记由endElement处理,只需在条件的else 部分打印qname)。所以characters处理程序不会看到它们。