gpt4 book ai didi

来自复杂 XML 的 Java 对象,仅对子元素感兴趣

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:43 24 4
gpt4 key购买 nike

这是我的 XML 文件:

<Root>
<Id>1</Id>
<Title>My title</Title>
<More>
<Extension>Ex</Extension>
<Extra>Extra info</Extra>
<Comments>
<Comment date="2018-11-26T06:00:00+02:00">Hey, this is my comment</Comment>
<Comment date="2017-11-26T06:00:00+02:00">Hey, this is my comment</Comment>
<Comment date="2016-11-26T06:00:00+02:00">Hey, this is my comment</Comment>
<Comment date="2011-11-26T06:00:00+02:00">Hey, this is my comment</Comment>
</Comments>
</More>
</Root>

我只对<Comment>感兴趣数据。我当前的方法是使用 JaxB 解码并拥有类 Root.java、More.java、Comments.java,其中包含类 Comment.java。所以有点乱。

我这样做没有问题,但我想知道是否有任何方法可以让你直接进入<Comment>数据并且只有 1 个 Comment.java 类?

最佳答案

如果您只想从XML文件中获取所有comment标签,您可以尝试以下方法,

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class ReadComments {

public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
File xml = new File("D:/data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xml);
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("Comment");

for (int i= 0; i< nodeList.getLength(); i++) {
Node node = nodeList.item(i);

if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
System.out.printf("Comment : %s | Date : %s\n", node.getTextContent(), element.getAttribute("date"));
}
}
}
}

输出:

Comment : Hey, this is my comment | Date : 2018-11-26T06:00:00+02:00
Comment : Hey, this is my comment | Date : 2017-11-26T06:00:00+02:00
Comment : Hey, this is my comment | Date : 2016-11-26T06:00:00+02:00
Comment : Hey, this is my comment | Date : 2011-11-26T06:00:00+02:00

请注意,这只是一个示例,用于解释如何获取特定标签的详细信息,您必须根据需要修改此代码。

关于来自复杂 XML 的 Java 对象,仅对子元素感兴趣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53895740/

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