使用Java SAX解析XML文档时出现问题

使用Java SAX解析XML文档时出现问题,java,xml,parsing,sax,Java,Xml,Parsing,Sax,我正在解析一个XML文档。我以前做过数千次,但我不明白为什么会出现以下问题: 以下是我正在解析的XML文档的相关部分: XML: <?xml version="1.0" standalone="yes"?> <ratings> <url_template>http://api.netflix.com/users/T1BlCJtdcWMuF6gJEfue96_W.kZ_gW81h59KqLEfT1AzE-/ratings/title?{-join|&am

我正在解析一个XML文档。我以前做过数千次,但我不明白为什么会出现以下问题:

以下是我正在解析的XML文档的相关部分:

XML: <?xml version="1.0" standalone="yes"?>
<ratings>
<url_template>http://api.netflix.com/users/T1BlCJtdcWMuF6gJEfue96_W.kZ_gW81h59KqLEfT1AzE-/ratings/title?{-join|&amp;|title_refs}</url_template>
<ratings_item>
    <user_rating value="not_interested"></user_rating>
    <predicted_rating>4.8</predicted_rating>
    <id>http://api.netflix.com/users/T1BlCJtdcWMuF6gJEfue96_W.kZ_gW81h59KqLEfT1AzE-/ratings/title/70112530</id>
    <link href="http://api.netflix.com/catalog/titles/series/70112530/seasons/70112530" rel="http://schemas.netflix.com/catalog/title" title="Castle: Season 1">
    </link>
    .
    .
    .

这是否与用户评级有一个属性“值”有关?我将感谢任何帮助。谢谢

我建议您等到

endElement(String uri, String localName, String qName)
在将元素标记为已通过之前:

inSomething = false
我可以想象,当元素为空时

public void characters(char[] ch, int start, int length)

将不会被调用,您的标志将不会被清除,并且您将进入两个Inmething标志设置为true的不合适状态。

我建议您等待

endElement(String uri, String localName, String qName)
在将元素标记为已通过之前:

inSomething = false
我可以想象,当元素为空时

public void characters(char[] ch, int start, int length)

将不会被调用,您的标志将不会被清除,并且您将进入两个InMething标志设置为true的不一致状态。

我是否应该在endElement()中将所有布尔值设置为false?我一直在characters()中完成这一切,如上面的原始示例所示……正如您所建议的,我修复了曾经给我带来问题的,但我在其他类中有很多其他布尔值,我在characters()中将它们设置为false……嗯,这取决于具体情况。在您发布的例子中,您的布尔值实际上表明您已经解析了元素。这是合理的,你可以确定只有当你击中结束元素。但是,例如,如果您想设置一些布尔值来指示元素具有非空值,那么在characteds()处理程序中设置它是有意义的。希望这有帮助:)我应该在endElement()中将所有布尔值设置为false吗?我一直在characters()中完成这一切,如上面的原始示例所示……正如您所建议的,我修复了曾经给我带来问题的,但我在其他类中有很多其他布尔值,我在characters()中将它们设置为false……嗯,这取决于具体情况。在您发布的例子中,您的布尔值实际上表明您已经解析了元素。这是合理的,你可以确定只有当你击中结束元素。但是,例如,如果您想设置一些布尔值来指示元素具有非空值,那么在characteds()处理程序中设置它是有意义的。希望这有帮助:)