java - 如何使用 Java 和 SAX 解析我的简单 XML 文件?

标签 java xml xml-parsing

我正在尝试解析下面的文件。我想打印每位乘客的身份证和姓名。你能给我解析它的代码吗?

<?xml version="1.0" encoding="utf-8"?>
<root xmlns:android="www.google.com">

<passenger id = "001">
<name>Tom Cruise</name>
</passenger>

<passenger id = "002">
<name>Tom Hanks</name>
</passenger>

</root>

更新 这是我试过的。这里提到的代码,问题等 - Error in output of a simple SAX parser

最佳答案

这是一个开始的工作示例,虽然我建议您改用 StAX,但您会发现 SAX 不是很方便

import java.io.File;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class SAX2 {

    public static void main(String[] args) throws Exception {
        SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
        parser.parse(new File("test.xml"), new DefaultHandler() {

            @Override
            public void startElement(String uri, String localName,
                    String qName, Attributes atts) throws SAXException {
                if (qName.equals("passenger")) {
                    System.out.println("id = " + atts.getValue(0));
                }
            }

            @Override
            public void endElement(String uri, String localName, String qName)
                    throws SAXException {
            }

            @Override
            public void characters(char[] ch, int start, int length)
                    throws SAXException {
                String text = new String(ch, start, length);
                if (!text.trim().isEmpty()) {
                    System.out.println("name " + text);
                }
            }
        });
    }
}

输出

id = 001
name Tom Cruise
id = 002
name Tom Hanks

关于java - 如何使用 Java 和 SAX 解析我的简单 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13818129/

相关文章:

java - 比较器的返回类型

java - 在 Java 中为 TCP 实现 3 次握手

xml - Eclipse 不会将 XML 文件放在项目自己的构建路径中

java - SAX解析器加载DTD文件

java - 在 MATLAB 中解析 XML 字符串

java - ListView 元素背景 - resource mutable()

java - Ubuntu 上的 JDK 1.2

c# - 使用 REST API 返回 XML 文档

sql - 如何从 SQL Server 中的 XML 值获取元素名称列表

python - 使用 xml.etree.ElementTree 获取子节点的所有实例