gpt4 book ai didi

java - Xml解析包括内联解析

转载 作者:行者123 更新时间:2023-12-02 00:32:05 24 4
gpt4 key购买 nike

使用:

 import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;

如何提取 xml 数据?例如对于这个 xml 文件:

<request method="POST" url="/devices/test/planner" body="*">
<response statusCode="200">
<header>
<headerParameters>
<headerParameter name="Content-Type">Content-Type=application/xml</headerParameter>
</headerParameters>
</header>
<body>booking created!</body>
</response>
</request>

如何简单地提取数据?另外,如何从内联行中提取数据?

<request method="POST" url="/devices/test/planner" body="*">

谢谢?

最佳答案

我赞同使用 XPath 的建议。您可以手动遍历 DOM,但为什么呢? XPath 就是为了解决这个问题而设计的。这是完整的Java/JAXP/XPath 示例(sans 错误检查和异常处理):

import java.io.IOException;
import java.io.StringReader;
import javax.xml.parsers.*;
import javax.xml.xpath.*;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

public class Xpather {
public static void main(String[] args)
throws XPathExpressionException, ParserConfigurationException,
SAXException, IOException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource("workbook.xml"));
XPath xpath = XPathFactory.newInstance().newXPath();
Node body = (Node) xpath.evaluate("/request/response/body", doc,
XPathConstants.NODE);
System.out.println(body.getTextContent());
Node url = (Node) xpath.evaluate("/request/@url", doc,
XPathConstants.NODE);
System.out.println(url.getNodeValue());
}
}

此代码打印 body 元素的内容以及 request 元素上 url 属性的值。

输出:

booking created!

/devices/test/planner

关于java - Xml解析包括内联解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8780773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com