0

在解析像下面这样的 xml 文件时,我想获取一个特定 ID 的电话号码列表。我正在使用 Digester 来执行此操作。但我不明白如何添加调用方法或创建对象。谁能帮我有了这个。我的 xml 文件包含 1000 种类型

<?xml version='1.0' encoding='utf-8'?>
<address-book>
<contact type="individual">
    <id>50</id>
    <city>New York</city>
    <province>NY</province>
    <postalcode>10013</postalcode>
    <country>USA</country>
<address>
    <telephone>1-212-345-6789</telephone>
<telephone>1-212-345-6789</telephone>
<telephone>1-212-345-6789</telephone>
<telephone>1-212-345-6789</telephone>
</address>
</contact>
<contact type="business">
    <id>52</id>
    <city>Zagreb</city>
    <province></province>
    <postalcode>10000</postalcode>
    <country>Croatia</country>
<address>
    <telephone>1-212-345-6789</telephone>
<telephone>1-212-345-6789</telephone>
<telephone>1-212-345-6789</telephone>
<telephone>1-212-345-6789</telephone>
</address>
</contact>

另外,当我获得所需的 ID 时,我应该如何停止解析。

4

1 回答 1

0

尽管问题是特定于使用 apache-commons-digester 的,但这可以通过 XML 函数系列中已经可用的大量库来解决 - 即 SAX 解析器与 XPath 搜索相结合。如果要搜索的内容是已知的,那么 XPath 查询可以相对有效地查找数据,而不是对数据进行暴力破解。否则,如果为了索引或其他目的而遍历整个数据集,再次建议使用简单的 SAX 解析器并循环遍历元素(同样可能通过 //MyElement 类型 XPath 查询),然后对于每个实例,将值传递给用于索引或任何操作的功能。apache-commons-digester 对于需要的东西可能过于复杂和/或缓慢。

于 2013-02-25T01:41:05.130 回答