gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:10:55 25 4
gpt4 key购买 nike

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

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