java - 解析一个简单的 xml 字符串

标签 java xml-parsing

我有一个简单的 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/

相关文章:

java - 禁用外部库上的日志记录框架

JavaFX fxml - 如何将 Spring DI 与嵌套自定义控件一起使用?

java - 我在类(class)的什么地方放置@XmlElement 注释?

javascript - 循环期间出现 Google Sheet Script Null 错误

javascript - 为嵌入式环境用纯 javascript 编写的 XML 解析器

Java 序列化 1.4 与 1.6

java - 如何导航到 sqlite 数据库表中的下一个项目 - android

java - 将两个二维数组复制到另一个二维数组Java

java - 使用 SAX 解析器获取特定子节点

python - 删除 too 元素之间的多个 XML 元素