gpt4 book ai didi

java - 解析节点内具有相同属性的 XML 文件

转载 作者:行者123 更新时间:2023-12-01 16:39:31 24 4
gpt4 key购买 nike

我有一个 XML 文件,其中包含有关冠状病毒大流行的信息,如下所示

    <records>
<record>
<dateRep>18/05/2020</dateRep>
<day>18</day>
<month>5</month>
<year>2020</year>
<cases>262</cases>
<deaths>1</deaths>
<countriesAndTerritories>Afghanistan</countriesAndTerritories>
<geoId>AF</geoId>
<countryterritoryCode>AFG</countryterritoryCode>
<popData2018>37172386</popData2018>
<continentExp>Asia</continentExp>
</record>

<record>
<dateRep>17/05/2020</dateRep>
<day>17</day>
<month>5</month>
<year>2020</year>
<cases>0</cases>
<deaths>0</deaths>
<countriesAndTerritories>Afghanistan</countriesAndTerritories>
<geoId>AF</geoId>
<countryterritoryCode>AFG</countryterritoryCode>
<popData2018>37172386</popData2018>
<continentExp>Asia</continentExp>
</record>

<record>
<dateRep>17/05/2020</dateRep>
<day>17</day>
<month>5</month>
<year>2020</year>
<cases>0</cases>
<deaths>0</deaths>
<countriesAndTerritories>Turkey</countriesAndTerritories>
<geoId>TR</geoId>
<countryterritoryCode>TRY</countryterritoryCode>
<popData2018>80172310</popData2018>
<continentExp>asia</continentExp>
</record>

如您所见,此 XML 数据包含有关同一国家/地区 (AFGHANISTAN) 的数据我需要遍历这个 XML 文件并获取具有相同 statesAndTerritories 属性的所有节点例如,对于阿富汗,我想添加每个节点拥有的所有案例,这样我就可以获得所有节点的案例总数这是我解析文件的代码

 String filePath = "data.xml";
File xmlFile = new File(filePath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
org.w3c.dom.Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nodeList = doc.getElementsByTagName("record");
//now XML is loaded as Document in memory, lets convert it to Object List
List<Corona> empList = new ArrayList<Corona>();
for (int i = 0; i < nodeList.getLength(); i++) {
NodeList nl = doc.getElementsByTagName("geoId");

Node currentNode = nodeList.item(i);
System.out.println("CurrentNode"+currentNode.getChildNodes());
empList.add(getCorona(nodeList.item(i)));
}

我希望我清楚地解释了我的问题,我只想继续浏览 XML 文件并获取具有相同 statesAndTerritories 属性的所有节点

最佳答案

对于 XML 解析器,每个主节点必须是唯一的,但 XML 文件中的情况并非如此:记录节点。您可以按如下操作

<record id="1">
<dateRep>18/05/2020</dateRep>
<day>18</day>
<month>5</month>
<year>2020</year>
<cases>262</cases>
<deaths>1</deaths>
<countriesAndTerritories>Afghanistan</countriesAndTerritories>
<geoId>AF</geoId>
<countryterritoryCode>AFG</countryterritoryCode>
<popData2018>37172386</popData2018>
<continentExp>Asia</continentExp>
</record>

<record id="2">
<dateRep>17/05/2020</dateRep>
<day>17</day>
<month>5</month>
<year>2020</year>
<cases>0</cases>
<deaths>0</deaths>
<countriesAndTerritories>Afghanistan</countriesAndTerritories>
<geoId>AF</geoId>
<countryterritoryCode>AFG</countryterritoryCode>
<popData2018>37172386</popData2018>
<continentExp>Asia</continentExp>
</record>
...

关于java - 解析节点内具有相同属性的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61892495/

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