JavaXML:解析具有相同标记的嵌套XML文件 背景

JavaXML:解析具有相同标记的嵌套XML文件 背景,java,xml,dom,Java,Xml,Dom,我有一个XML文档,它在LabVIEW(一组集群的数组)中表示一个数据结构,用于存储模拟参数。我通过从LabVIEW将数据结构保存为XML来生成文档,并且我需要保留其通用格式,以便LabVIEW可以在以后将其读回。该文件的结构如下: 和类,我似乎无法仅拆分父集群节点 从答案到: DocumentBuilderFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder=factory.newDocumentBuilder(); Doc

我有一个XML文档,它在LabVIEW(一组集群的数组)中表示一个数据结构,用于存储模拟参数。我通过从LabVIEW将数据结构保存为XML来生成文档,并且我需要保留其通用格式,以便LabVIEW可以在以后将其读回。该文件的结构如下:

和类,我似乎无法仅拆分父
集群
节点

从答案到:

DocumentBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder=factory.newDocumentBuilder();
Document doc=builder.parse(“param_file.xml”);
NodeList nodes=doc.getElementsByTagName(“集群”);//每个集群都在这个列表中,但我只想遍历顶级集群。
对于(int i=0;i
问题: 我想我正在寻找一种方法,将我的XML文件表示为一个对象,该对象维护树结构,然后生成一个只包含顶级
Cluster
元素的列表,然后可以钻取每个元素,以获取/设置它们的子
Cluster
元素及其属性


谢谢

文档
实例已经表示内存中XML的树结构。你必须在这个结构中正确地导航。如果需要顶级
集群
元素,可以获取XML根节点的子节点并在其上循环:

List<Node> topLevelClusterElements = new ArrayList<Node>();

NodeList childNodes = doc.getDocumentElement().getChildNodes();
for(int i = 0; i < childNodes.getLength(); i++) {
    Node childNode = childNodes.item(i);
    if(childNode.getNodeType() == Node.ELEMENT_NODE && childNode.getNodeName().equals("Cluster")) {
        Element clusterElement = (Element) childNode;
        topLevelClusterElements.add(clusterElement);
    }
}
列出topLevelClusterElements=new ArrayList();
NodeList childNodes=doc.getDocumentElement().getChildNodes();
对于(int i=0;i
太棒了,谢谢。
doc.getDocumentElement()
返回的内容的文档在哪里?查看的文档,似乎没有
getChildNodes()
方法,因此我继续感到困惑。再次感谢!没关系,我知道了
getChildNodes()
是父类的一个方法。等等,这仍然会抓取每个
集群
节点并将其添加到
topLevelClusterElements
列表中,还是只抓取顶级
集群
节点?基本上,
getChildNodes
只向下一级,还是递归并返回每个子节点?不,它只是一级,没有递归。