Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XML解析:提取嵌套节点以显示在JTable中_Java_Xml_Swing_Parsing_Nodes - Fatal编程技术网

Java XML解析:提取嵌套节点以显示在JTable中

Java XML解析:提取嵌套节点以显示在JTable中,java,xml,swing,parsing,nodes,Java,Xml,Swing,Parsing,Nodes,我有一个xml,其中一部分具有以下结构 <nodes> <node> </node> <node> </node> </nodes> 现在,在节点中可以有任意数量的节点元素。一个节点依次可以包含更多的节点元素,而这些节点又可以包含更多的元素。就这样继续下去。每个节点也包含属性 我不想在没有适当设计的情况下就跳进这一步,最终陷入混乱,那么提取这些数据的最佳方法是什么呢?然后我需要在JTable

我有一个xml,其中一部分具有以下结构

<nodes>
   <node>
   </node>

   <node>
   </node>

</nodes>

现在,在
节点
中可以有任意数量的
节点
元素。一个
节点
依次可以包含更多的
节点
元素,而这些节点又可以包含更多的
元素。就这样继续下去。每个
节点也包含属性


我不想在没有适当设计的情况下就跳进这一步,最终陷入混乱,那么提取这些数据的最佳方法是什么呢?然后我需要在JTable中显示它,很可能是一个可折叠/可扩展的视图。但这是另一个问题,DOM和XPATH可以解决这一问题:

String xml= // your xml
DocumentBuilderFactory builderFactory =DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xml)));
NodeList nodes_field_to_insert=document_to_insert.getElementsByTagName("node");
for (int k = 0; k < nodes.getLength(); k++) {
// Do what you want with that
stringxml=//您的xml
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder=builderFactory.newDocumentBuilder();
documentdocument=builder.parse(新的InputSource(新的StringReader(xml));
NodeList nodes_field_to_insert=document_to_insert.getElementsByTagName(“节点”);
对于(int k=0;k
然而,您必须阅读API和示例


希望有帮助

这取决于您是否希望能够修改原始数据(返回到XML)?你看过了吗?你看过xPath了吗?不,我不需要把数据修改回XML。在研究库之前,我正试图想出一个设计来解决这个问题。SwingLab的SwingX库有一个
JXTreeTable
,它很可能会生成你要找的结构。一个基本的“树”结构将包含数据,您可以直接使用SwingX的
TreeTableModel
,或者使用它包装您自己的结构