gpt4 book ai didi

java - 在Java中读取一个标签中包含多个值的xml文件

转载 作者:行者123 更新时间:2023-12-02 02:41:04 24 4
gpt4 key购买 nike

我有这样的 xml 文件

  <Sample_Data>
<lastname Name="lastname" Value="FIRSTNAME" />
<firstname Name="firstname" Value="LASTNAME" />
<DM Name="DM" Value="93.2" />
<CP Name="CP" Value="7.7" />
</Sample_Data>

我需要用java读取这个文件,我使用这样的代码:

 try {

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse("File.xml");

doc.getDocumentElement().normalize();

System.out.println("Root element :" + doc.getDocumentElement().getNodeName());

NodeList nList = doc.getElementsByTagName("Sample_Data");

System.out.println("----------------------------");

for (int temp = 0; temp < nList.getLength(); temp++) {

Node nNode = nList.item(temp);

System.out.println("\nCurrent Element :" + nNode.getNodeName());

if (nNode.getNodeType() == Node.ELEMENT_NODE) {

Element eElement = (Element) nNode;


System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent());
System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
System.out.println("DM : " + eElement.getElementsByTagName("DM").item(0).getTextContent());
System.out.println("CP : " + eElement.getElementsByTagName("CP").item(0).getTextContent());

}
}

} catch (Exception e) {
e.printStackTrace();
}

但是我无法获取名字、姓氏、DM 和 CP 的值,我得到了它们的空值。

有人可以帮我解决这个问题吗?

最佳答案

您的所有元素都没有文本节点。所以 getTextContent() 是空的。您应该改为阅读属性。

getElementsByTagName().item(0) 返回一个 Node,因此您应该首先将其转换为 Element

((Element) eElement.getElementsByTagName("firstname").item(0)).getAttribute("Value")

在生产代码中,您还应该检查 NodeList eElement.getElementsByTagName("firstname") 是否包含某些项目。

关于java - 在Java中读取一个标签中包含多个值的xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45463818/

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