0

您好,我已经在 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>
.....
.....
.....

谢谢您的回答

4

2 回答 2

5

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

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

于 2009-10-14T13:34:39.250 回答
1

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

于 2009-10-14T13:32:11.503 回答