我刚刚开始学习 Xpath,我正在尝试编写一行代码来选择每个电影父级中的所有 Actor (通过 Java!)。下面,我有一个一部电影的例子,但是有多个 <Movie>
元素,每个都有 <Actor>
元素。
<Movie Genre = 'Other'>
<Title>Requiem For A Dream</Title>
<ReleaseYear>2000</ReleaseYear>
<Director>Darren Aronofsky</Director>
<Actor Character = 'Sara Goldfarb'>Ellen Burstyn</Actor>
<Actor Character = 'Harry Goldfarb'>Jared Leto</Actor>
<Actor Character = 'Marion Silver'>Jennifer Connelly</Actor>
<Actor Character = 'Tyrone C. Love'>Marlon Wayans</Actor>
</Movie>
目前只能选择第一个<Actor>
每个元素 <Movie>
元素——是否可以在不使用 for 循环的情况下选择所有元素?
这是我当前显示第一个 <Actor>
的代码行每个 <Movie>
的元素元素:
System.out.println("Starring: " + xpath.evaluate("Actor", movieNode) + " as " + xpath.evaluate("Actor/@Character", movieNode) + "\n");
如果非常感谢,任何和所有的帮助!
最佳答案
不,您需要一个 for 循环来遍历 evaluate
方法返回的 NodeList
中的每个 Node
。
NodeList nodes = (NodeList)xpath.evaluate("Actor", movieNode, XPathConstants.NODESET);
for (int i = 0; i < nodes.getLength(); i++) {
Element actor = (Element)nodes.item(i);
String actorName = actor.getTextContent();
String character = actor.getAttribute("Character");
System.out.println("Starring: " + actorName + " as " + character + "\n");
}
PS:好电影顺便说一句 :-)。
关于java - Xpath:选择所有元素类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4857267/