0

我正在尝试解析 xml 文件。但是 < 有一个问题。

我的 XML 文件示例:

<title>
<subtitle> The conclusion is p &lt; 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 < 0.1”

我认为问题出在 getText() 上,我该如何解决?

4

1 回答 1

0

如果你认为问题出在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();                            
        }
     }

}

于 2021-01-19T16:40:35.010 回答