问题描述
我正在尝试解析 xml 文件。但是 有问题
我的 XML 文件示例:
<title>
<subtitle> The conclusion is p < 0.1 </subtitle>
</title>
我的代码是:
XMLInputFactory factory = XMLInputFactory.newFactory();
XMLStreamReader reader = factory.createXMLStreamReader(StringSource);
while (reader.hasNext()) {
switch (reader.next()) {
case XMLStreamReader.START_ELEMENT: {
String tagName = reader.getLocalName();
String path = parent.getPath() + "/" + tagName;
parent.addChild(child);
}
case XMLStreamReader.CHaraCTERS: {
String text = reader.getText();
解析后得到的文本是:“0.1”。
我期望的输出是“结论是 p
我认为问题出在 getText() 上,我该如何解决?
解决方法
如果你认为问题是getText(),那么改写为reader.toString()而不是getText();
在这里你可以看到一个解析代码。
tring resumen = "";
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLEventReader xmlEventReader = xmlInputFactory.createXMLEventReader(new FileInputStream(fileName));
xmlEventReader.nextEvent();
while (xmlEventReader.hasNext()) {
XMLEvent xmlEvent = xmlEventReader.nextEvent();
if (xmlEvent.isStartElement()) {
StartElement startElement = xmlEvent.asStartElement();
if (startElement.getName().getLocalPart().equals("subtitle")) {
xmlEvent = xmlEventReader.nextEvent();
resumen = xmlEvent.toString();
}
}
}