gpt4 book ai didi

java - 循环xml并持久化到数据库java

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

我正在尝试循环遍历 xml 并提取值并使用 rest 将其持久保存到 mysql 中。这是我到目前为止所拥有的。但它只提取第一个具有值歌曲的字符串它添加到数据库中,但我喜欢一次添加两个。

    NodeList artistList = (NodeList)xPath.evaluate("/plist/dict/dict/dict/string[@rollno='artist']", root, XPathConstants.NODESET);
for (int i = 0; i < artistList.getLength(); ++i) {
Element e = (Element) artistList.item(i);
artist= e.getFirstChild().getNodeValue();


book.setIsbn(artist);
book.setName(song);



returnCode = "200";
em = Resource.getEntityManager();
}

这是我尝试使用 xpath 解析的 xml,我想提取所有 rollno="song"并将它们一个接一个地保留,任何建议或帮助都意义重大。谢谢

  <plist version="1.0">
<dict>
<key>Major Version</key>
<integer>1</integer>
<key>Application Version</key>
<string>7.0.2</string>
<key>Show Content Ratings</key>
<true />
<key>Tracks</key>
<dict>
<key>1288</key>
<dict >
<key>Track ID</key>
<integer>1288</integer>
<key>Name</key>
<string rollno="song">Brighter Than Sush</string>
<key>Artist</key>
<string rollno="artist">Aqualug</string>
<key>Album Artist</key>
<string>Aqualung</string>
<key>Album</key>
<key>Track ID</key>
<integer>1288</integer>
<key>Name</key>
<string rollno="song">james</string>
<key>Artist</key>
<string rollno="artist">martha</string>
<key>Album Artist</key>
<string>Aqualung</string>
<key>Album</key>
</dict>


</dict>
</dict>
</plist>

最佳答案

您的 XPath/NodeList 代码是正确的。由于您只获得了最后一个 XML 值,要么您在 for 循环之后执行操作(不太可能),要么覆盖在循环之前创建的同一对象的字段。

    for (int i = 0; i < artistList.getLength(); ++i) {
Element e = (Element) artistList.item(i);
artist= e.getFirstChild().getNodeValue();

book = new Book(); // A new object here
book.setIsbn(artist);
book.setName(song);
... // Process book
}

为了获得良好的顺序,您可能更愿意使用e.getTextContent()

关于java - 循环xml并持久化到数据库java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33897602/

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