java - 如何在没有 DOM 的情况下在 java 中读取 XML?

标签 java xml xpath

我有一个 XML 文件并使用 Xpath 读取信息,我想一起读取“listings_Id”和“budget_remaining”。

XML 示例

<ads>
  <ad>
     <listing_ids>
      <listing_id>2235</listing_id>
      <listing_id>303</listing_id>
      <listing_id>394</listing_id>
     </listing_ids>
     <reference_id>11</reference_id>
     <net_ppe>0.55</net_ppe>
     <budget_remaining>50000.0</budget_remaining>
 </ad>
  <ad>
     <listing_ids>
       <listing_id>2896</listing_id>
     </listing_ids>
     <reference_id>8</reference_id>
     <net_ppe>1.5</net_ppe>
     <budget_remaining>1.3933399</budget_remaining>
  </ad>
 </ads>

我想将其输出到 CSV 文件,如下所示

ListingId,BudgetRemaining
2235,50000
303,50000
394,50000
2896,1.39

使用代码

String expression = "/ads/ad/listing_ids/listing_id";
    System.out.println(expression);
    NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(docum, XPathConstants.NODESET);
    for (int i = 0; i < nodeList.getLength(); i++) {
        System.out.println(nodeList.item(i).getFirstChild().getNodeValue());
    }

String expression1 = "/ads/ad/budget_remaining";
    System.out.println(expression1);
    NodeList nodeList1 = (NodeList) xPath.compile(expression1).evaluate(docum, XPathConstants.NODESET);
    for (int i = 0; i < nodeList1.getLength(); i++) {
        System.out.println(nodeList1.item(i).getFirstChild().getNodeValue());
    }

输出

  /ads/ad/listing_ids/listing_id
  2235
  303
  394
  2896
  /ads/ad/budget_remaining
  50000.0
  1.3933399

期望的输出

 2235,50000.0
 303,50000.0
 2896,50000.0
 2896,1.3933399

如何使用 Xpath 或任何其他方法读取 XML?我希望每个“列表 ID”都能同时读取“listing_ids”和“budget_剩余”,例如

303,50000

请帮助我 - Java 新手。

最佳答案

使用 jaxb 将 XML 解析为广告列表可能会更容易。 然后您可以引用您的 Java 列表

关于java - 如何在没有 DOM 的情况下在 java 中读取 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21893563/

相关文章:

sql-server - 检查 XML 元素是否在 SQL 中标记为 `xsi:nil`

Java按顺序将数字插入数组

python - 使用 lxml,如何找到父节点的兄弟节点?

java - 使用 JAXB 的属性顺序

xml - 比较XPath中同一节点中的属性值与子值

asp.net - 请检查我的 XPath 查询

java - 我收到无效字符常量错误,我做错了什么?

java - 谷歌应用引擎 : maven or eclipse google plugin

java - 图像透明度和 JPanel 图像背景

C# Xml 值总是为空