小编Ahe*_*ein的帖子

为什么DocumentBuilder.parse()不起作用

我已经阅读了几篇关于如何使用该DocumentBuilder.parse()函数获取文档对象的帖子.

Document document = builder.parse(new InputSource(new StringReader(xml)));
Run Code Online (Sandbox Code Playgroud)

正在回归[#document: null],我发现并不一定意味着它是空的.然而,经过更多的检查,我发现它实际上是空的.

我正在构建String xml并使用了一个xml验证器(并粘贴到eclipse和ctrl+ shift+ f来格式化它.这通常是我第一次尝试查看是否有一些形式正确)来表明它是有效的xml.我决定打破parse()参数的每个部分,以便我可以单步执行并观察以确保它们正常工作.

我的代码是:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;        
try {
    builder = factory.newDocumentBuilder();
    StringReader sr = new StringReader(xml);
    InputSource is = new InputSource(sr);
    Document document = builder.parse(is);          

    return document;
} catch(Exception e){
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

sr和似乎正常工作,直到我执行builder.parse(是)行.执行此操作后,sr.str值将变为null,与is.characterInputStream.str相同.这对我来说很奇怪,这是预期的吗?这一直让我发疯,任何输入都会很棒!

编辑 - 我的xml字符串是:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>Feed Title</title>
        <link>Feed Link</link>
        <description>Feed Description</description>
        <item>
            <title>Item Title</title>
            <link>Item Link</link>
            <description>Item Description</description>
        </item> …
Run Code Online (Sandbox Code Playgroud)

java xml

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

xml ×1