我有一个简单的 xml,想检索“字符串”中保存的值,该值要么是 True,要么是 False。有很多建议的方法,看起来很复杂!执行此操作的最佳方法是什么?
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">"True"</string>
我能够如下所示将 xml 读入 xmlReader。
XMLReader xmlReader = SAXParserFactory.newInstance()
.newSAXParser().getXMLReader();
InputSource source = new InputSource(new StringReader(response.toString()));
xmlReader.parse(source);
我现在如何从读者那里获得值(value)?
最佳答案
您首先需要定义一个处理程序:
public class MyElementHandler extends DefaultHandler {
private boolean isElementFound = false;
private String value;
public String getValue() {
return value;
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) {
if (qName.equals("elem")) {
isElementFound = true;
}
}
@Override
public void endElement(String uri, String localName, String qName) {
if (qName.equals("elem")) {
isElementFound = false;
}
}
@Override
public void characters(char ch[], int start, int length) {
if (isElementFound) {
value = new String(ch).substring(start, start + length);
}
}
}
然后,您按如下方式解析您的 xml:
String xml = response.toString();
XMLReader xmlReader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
InputSource source = new InputSource(new StringReader(xml));
//-- create handlers
MyAttributeHandler handler = new MyAttributeHandler();
xmlReader.setContentHandler(handler);
xmlReader.parse(source);
System.out.println("value = " + handler.getValue());
更一般 question关于 sax 解析。
关于java - 解析一个简单的 xml 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457460/