2013-07-29 90 views
-3

我需要从文件夹中读取所有输入xml文件并写入一个输出文本文件,逗号分隔。我有下面的代码程序读取一个文件,有人可以帮我修改它,并从c:/ java /文件夹中读取所有文件。感谢从文件夹读取多个xml文件并写入一个输出文本文件(逗号分隔)

import java.io.IOException; 
    import org.w3c.dom.*; 
    import org.xml.sax.SAXException; 
    import javax.xml.parsers.*; 
    import javax.xml.xpath.*; 

    public class XPathExample { 

     public static void main(String[] args) throws ParserConfigurationException, 
       SAXException, IOException, XPathExpressionException { 

      DocumentBuilderFactory domFactory = DocumentBuilderFactory 
        .newInstance(); 
      domFactory.setNamespaceAware(true); 
      DocumentBuilder builder = domFactory.newDocumentBuilder(); 
      Document doc = builder.parse("c:/java/test.xml"); 

      XPathFactory factory = XPathFactory.newInstance(); 
      XPath xpath = factory.newXPath(); 
      XPathExpression expr = xpath.compile("//FORM[@name='F00001']  /*/text()"); 

      Object result = expr.evaluate(doc, XPathConstants.NODESET); 
      NodeList nodes = (NodeList) result; 
      for (int i = 0; i < nodes.getLength(); i++) { 
      System.out.println(nodes.item(i).getNodeValue()); 
      } 

      } 

      } 
+1

你有没有尝试过自己的东西? –

回答

0

使用该迭代在目录中的所有文件:

Read all files in a folder

输出(在目录文件)作为输入这里

Document doc = builder.parse("<dir file>"); 

使用。如果文件不是XML,它要么返回null或exceprion被提出(我目前不知道)。无论如何,你必须解决这个问题。

0

要获取所有目录中的文件C:\java您可以使用代码:

for (File file : new File("C:\\java").listFiles()) 
{ 
    Document doc = builder.parse(file.getAbsolutePath()); 
    ... 
} 

可以播放约与在您添加代码的其余部分解决这个循环。您还应该添加一些基本检查,您试图解析的内容确实也是XML。

相关问题