【问题标题】:readXmlfile from java从 java 中读取 XML 文件
【发布时间】:2009-10-14 13:27:58
【问题描述】:

您好,我已经在 java 中编写了一个小类以将 xml 文件作为字符串读取,我的问题如下:如何附加字符串以便它只输出 Physical_Order_List_Array 标签之间的内容

这是一个java类:

public static String getFileContent(String fileName)
    {
        BufferedReader br = null;
        StringBuilder sb = new StringBuilder();
        try {
            br = new BufferedReader(new FileReader(fileName));
        try {
            String s;
            while((s = br.readLine()) != null)
            {
                sb.append(s);
                sb.append("\n");
            }
        }

        finally {
            br.close();
        }
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
        return sb.toString();
    }

这是一些相当大的 xml 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
.....
.....
.....some content
....here is what I only need 
<Physical_Order_List_Array>
....now I need to get this portion of the code, append string to only output what is beetween these tags, including these tags as well
</Physical_Order_List_Array>
.....
.....
.....

感谢您的回答

【问题讨论】:

  • 不能使用现有的 XML 解析器吗?喜欢 SAX 还是 DOM?

标签: java java-io


【解决方案1】:

不要将文件作为字符串读取,使用 XML 解析器读取它,然后使用 XPath 提取所需的节点。我在 parsingxpath 上都写过文章,它们将为您提供所需的代码。

另外,定义“相当大”——它是兆字节还是千兆字节?如果是后者,那么您将需要一个 SAX 解析器,我没有描述它。如果是前者,那么 DOM 解析器就可以了。

【讨论】:

    【解决方案2】:

    我会使用 XPath 并使用类似 //Physical_Order_List_Array 的东西。您可以自己解析 XML(在大多数情况下,一个相当简单的状态机可能会完成这项工作)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      相关资源
      最近更新 更多