gpt4 book ai didi

java - 读取 xml - java、dom

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

我在使用 dom 从 xml 读取数据时遇到问题。我不知道为什么“System.out.println(nNode.getChildNodes().item(0).hasAttributes());”返回 false...在我的 xml 文件中,该节点包含属性。你能帮我一下吗?

这是我的代码:

import java.io.File;

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

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class XmlParser {
private String[] linia;
private String[] wariant;
private String[] przystanek;
private String[] tabliczka;
private String[] dzien;
private String[] godz;
private String[] min;

public void readXml() {
try {

File fXmlFile = new File("c:\\file.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();

System.out.println("Root element :"
+ doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("linia");
System.out.println("-----------------------");

Node nNode = nList.item(0);
linia = new String[nNode.getAttributes().getLength()];
System.out.println(nNode.getAttributes().getLength());
int i = 0;
while (i < nNode.getAttributes().getLength()) {
linia[i] = nNode.getAttributes().item(i) + "";
System.out.print(linia[i] + " ");
i++;
}

wariant = new String[nNode.getChildNodes().getLength()];
System.out.println();
System.out.println(nNode.getChildNodes().getLength());
System.out.println(nNode.getNodeName());
int j = 0;
System.out.println(nNode.getChildNodes().item(0).hasAttributes());
while (j < nNode.getChildNodes().getLength()) {

wariant[j] = nNode.getChildNodes().item(j).getAttributes()
.item(0)
+ "";
// if(wariant[j].toString()!=null)
System.out.println(" " + wariant[j]);
j++;
}

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

最佳答案

您检查过索引 1 处的子节点吗?我的猜测是,您的解析器将标签之间的所有字符(换行符、制表符、空格)视为 CDATA,并将它们解析为没有属性的 CDATA 节点。

关于java - 读取 xml - java、dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10280779/

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