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