Java 将XML数据读入文本文件

Java 将XML数据读入文本文件,java,xml-parsing,domparser,Java,Xml Parsing,Domparser,我是一个非常新的编码,谁能帮我纠正我的代码。 我需要读取XML数据并将数据存储在文本文件中。每个值必须用逗号分隔,一旦读取了一条记录的数据,就需要转到下一行并执行另一条记录 示例XML文件: <?xml version="1.0" encoding="UTF-8"?> <xml_tool xmlns:md="http://www.example.com/XT/1.0/"> <md:header> <md:a

我是一个非常新的编码,谁能帮我纠正我的代码。 我需要读取XML数据并将数据存储在文本文件中。每个值必须用逗号分隔,一旦读取了一条记录的数据,就需要转到下一行并执行另一条记录

示例XML文件:

<?xml version="1.0" encoding="UTF-8"?>
 <xml_tool xmlns:md="http://www.example.com/XT/1.0/">  
    <md:header>       
          <md:application_version>1.0</md:application_version>      
         <md:export_date>19-04-2012</md:export_date>   
          <md:export_time>14:55</md:export_time>   
          <md:export_user>USER01</md:export_user> 
    </md:header>   
    <md:table table_name="CUSTOMER" key="customer number" record_count="2" column_count="5">  
          <md:record>   
                                        <md:column name="customer_number">123456</md:column>   
                                         <md:column name="reg_date">01-04-2012</md:column>   
                                          <md:column name="customer_name">Test Customer</md:column>  
                                          <md:column name="customer_type">Normal </md:column> 
                                          <md:column name="comments">This is a test record</md:column>       
            </md:record>     
             <md:record>             
                                           <md:column name="customer_number">555111</md:column>   
                                            <md:column name="reg_date">02-04-2012</md:column>        
                                            <md:column name="customer_name">Test Customer</md:column>     
                                            <md:column name="customer_type"> </md:column>            
                                             <md:column name="comments">This is a test record</md:column>         
                </md:record>     
      </md:table>
</xml_tool
预期产出:

123456,01-04-2012,Test Customer,Normal,This is a test record
555111,02-04-2012,Test Customer, ,This is a test record

我怀疑这是你的问题:

String name = nd.getTextContent();
if (name != null)
您可能需要:

String name = nd.getTextContent();
if (name != null && name.length() > 0)
如果(name!=null)更改为


如果(name!=null&&!name.trim().equals(“”)

123456,01-04-2012,测试客户,正常,这是一条测试记录,555111,02-04-2012,测试客户,VIP,这是一条测试记录,当最后一个值读取不应执行“,”的数据时,我以这种方式获得输出当它读取没有数据的空标记时,它需要写入空空间,如果(name!=null&&!name.trim().equals(“”)我完全删除了一个标记,那么要么将for循环条件更改为
nList.getLength()-1
,然后在for循环外部手动追加第n条记录(您可能希望将整个块移动到一个方法中,并在for循环内外调用该方法),或者简单地覆盖文件中的最后一个。使用RandomAccessFile(检查javadocs)或修改for循环以写入n-1条记录,并在for循环外写入第n条记录
String name = nd.getTextContent();
if (name != null)
String name = nd.getTextContent();
if (name != null && name.length() > 0)