所以我不确定这是否可行。但我想扫描XML文档以查找具有特定属性值的所有元素。
元素是什么或属性类型无关紧要......我只需要根据属性值找到它们。
e.g。我正在寻找“鸭子”这个词
<person name="Fred" thing="duck"/>
<person name="Mary"/>
<animal name="duck" thing="swims"/>
第一个和第三个匹配,第二个不匹配。
有什么想法吗?
非常感谢。
答案 0 :(得分:9)
我知道这个答案很好,但我认为这对其他人有用。有一种比上述方法更好的方法:
Elements ducks = doc.select("person[*=duck]");
这将返回仅包含值为“duck”的属性的元素。
在jsoups网站上有用的作弊:http://jsoup.org/apidocs/org/jsoup/select/Selector.html
答案 1 :(得分: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);
}
}
}