只读取XML中的根元素

时间:2011-02-06 06:13:48

标签: java python xml

在许多基于REST的API调用中,我们有一个名为nextURL的参数,使用它我们可以查询下一个URL。这通常在根元素中。(或者可能是下一个元素)

一般来说你们怎么读这个?如果您使用的是标准XML解析器,它会读取并加载整个XML,然后您可以通过getElementsByTag读取nextURL。有更好的解决方法吗?读取整个xml当然浪费时间/内存。

编辑:示例XML类似于

<result pubisher="xyz" nextURL="http://actualurl?since_date=<newdate>"> 
<element>adfsaf</element>
..
</result>

我需要捕获新的since_date而不读取整个XML。

2 个答案:

答案 0 :(得分:3)

Python:您可以使用ElementTree iterparse method ...前提是您想要的数据位于属性中,该属性将在您获得start事件时解析。如果它在元素的文本或尾部,则必须等到结束事件。如果你编辑了你的问题以显示你的XML是什么样子,并用一个例子解释“或者可能在下一个”中,那将是一个好主意。

答案 1 :(得分:0)

术语“标准XML解析器”涵盖了很多领域,以至于我认为你不能概括他们的行为。例如,标准的DOM解析器是基于树的,并且会将整个XML读入内存,但是SAX解析器(我认为也是StAX)不会,而是会随着应用程序的发展而推进。听起来像后者,SAX或StAX解析器,是你需要的。

编辑:请务必阅读KitsuneYMG以下关于SAX和StAX行为之间差异的评论。