[英]saxparser java xml file with null element
我正在尝试使用 SAxparser 解析 xml 文件。 除了 xml 文件中的元素标记包含空值的情况外,一切正常。 例如下面的 xml 元素
<QuotaCode>
<null/>
</QuotaCode>
被解析为 2 个空行。 下面是代码
public class ImportXML2 extends DefaultHandler {
private StringBuilder elementValue = new StringBuilder();
@Override
// A start tag is encountered.
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
elementValue.setLength(0);
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
switch (qName) {
case "Total_number_of_packages": {
System.out.println(elementValue.toString());
break;
}
case "QuotaCode": {
System.out.println("quote " + elementValue.toString());
break;
}
case "office_code": {
System.out.println(elementValue.toString());
break;
}
} }
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
if (elementValue == null) {
} else {
elementValue.append(ch, start, length);
}
}
}
结果是(QuotaCode 标记在 xml doc 中出现 2 次):
4
office_1
quote
quote
你的解释是错误的。 SAX 正在触发与您预期不同的事件。
<QuotaCode>
<null/>
</QuotaCode>
当 SAX 解析器读取此文档时,它将触发
<QuotaCode>
的 startElement<null/>
的 startElement<null/>
的 endElement</QuotaCode>
的 endElement 也许您希望<null/>
成为元素文本? 然后你需要像这样转义这些数据:
<QuotaCode>
>null/<
</QuotaCode>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.