4

所以我不确定这是否可能。但我想扫描 XML 文档以查找具有特定属性值的所有元素。

元素是什么或属性类型是什么都没关系......我只需要根据属性值找到它们。

例如,我正在寻找“鸭子”这个词

<person name="Fred" thing="duck"/>
<person name="Mary"/>
<animal name="duck" thing="swims"/>

第一个和第三个应该匹配,第二个不匹配。

有任何想法吗?

非常感谢。

4

2 回答 2

11

我知道这个答案是事后的,但我认为它对其他人有用。有比上述方法更好的方法:

Elements ducks = doc.select("person[*=duck]");

这将返回仅包含值为“duck”的属性的元素。

jsoups 网站上有用的备忘单:http: //jsoup.org/apidocs/org/jsoup/select/Selector.html

于 2014-08-19T10:03:50.190 回答
5

如果使用选择器可以做到这一点,则不确定。但也许你可以尝试这样的事情:

final String input = "<person name=\"Fred\" thing=\"duck\"/>"
        + "<person name=\"Mary\"/>"
        + "<animal name=\"duck\" thing=\"swims\"/>";


Document doc = Jsoup.parse(input);
Elements withAttr = new Elements();


for( Element element : doc.getAllElements() )
{
    for( Attribute attribute : element.attributes() )
    {
        if( attribute.getValue().equalsIgnoreCase("duck") )
        {
            withAttr.add(element);
        }
    }
}
于 2012-09-04T18:03:38.327 回答