当解析一个像下面这样的xml文件时,我想要得到一个特定i的电话号码列表。我正在使用Digester来做调用。我不知道如何添加this.But方法或创建对象.Can任何人帮助我使用this.My 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时,我应该如何停止解析。
发布于 2013-02-25 09:41:05
虽然这个问题是特定于使用apache-commons-digester的,但是这个问题可以通过XML系列函数中已有的库来解决--即结合了XPath搜索的SAX解析器。如果要搜索的内容是已知的,则XPath查询可以相对高效地找到数据,而不是暴力地遍历数据。否则,如果为了索引或其他目的而遍历整个数据集,同样建议使用简单的SAX解析器并遍历元素(同样可以通过//MyElement类型的XPath查询),然后对于每个实例,将值传递给函数以进行索引或其他操作。apache-commons-digester对于所需的内容可能过于复杂和/或速度较慢。
https://stackoverflow.com/questions/15058229
复制相似问题