从给定节点提取子节点数据 [英] Extracting child nodes data from given node

查看:119
本文介绍了从给定节点提取子节点数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用DOM4j来解析Java中的xml文件。

I want to use DOM4j for parsing xml file in Java.

我以这个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>

给定请求(第一个节点)节点,如何提取子节点数据?

Given the request (first node) node, how can I extract the child nodes data?

例如获取< response> 状态代码,或< headerParameter> ; 名称属性?

For example getting the <response> status code, or the <headerParameter> name attributes?

推荐答案

假设您将请求节点作为 元素 然后你可以这样做:

Assuming you get the "request" node as an Element then you can do something like this:

Element response = (Element) request.elements().get(0);
int statusCode = Integer.parseInt(response.attribute("statusCode"));

如果你想以递归方式遍历子节点,那么你将不得不编写迭代(或递归)代码访问 elements() 方法。

If you want to traverse the children recursively then you'll have to write iterative (or recursive) code to visit each element in the list returned by the elements() method.

您也可以使用XPath提取特定项目寻找:

int statusCode = Integer.parseInt(
    request.selectSingleNode("response/@statusCode").getText());
String firstHeaderName =
    request.selectSingleNode(
        "response/headerParameters/headerParameter/@name").getText();

这篇关于从给定节点提取子节点数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆