Xpath:选择所有元素类型?(Xpath: Selecting all of an element type?)

编程入门 行业动态 更新时间:2024-10-28 08:20:59
Xpath:选择所有元素类型?(Xpath: Selecting all of an element type?)

我刚开始学习Xpath,我正在尝试编写一行代码来选择EACH电影父级中的所有演员(通过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>

目前,我只能选择每个<Movie>元素的第一个<Actor>元素 - 是否可以在不使用for循环的情况下选择所有元素?

这是我当前的代码行,显示每个<Movie>元素的第一个<Actor> <Movie>元素:

System.out.println("Starring: " + xpath.evaluate("Actor", movieNode) + " as " + xpath.evaluate("Actor/@Character", movieNode) + "\n");

任何和所有帮助,如果非常感谢!

I'm just starting to learn Xpath, I'm trying to write a line of code that will select all of the actors in EACH movie parent (through Java!). Below, I have an example of one movie, but there are multiple <Movie> elements, each with <Actor> elements.

<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>

Currently, I can only select the first <Actor> element of each <Movie> element -- is it possible to select all of them without using a for loop?

Here is my current line of code that displays the first <Actor> element of every <Movie> element:

System.out.println("Starring: " + xpath.evaluate("Actor", movieNode) + " as " + xpath.evaluate("Actor/@Character", movieNode) + "\n");

Any and all help if much appreciated!

最满意答案

不,您需要一个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:好电影顺便说一句:-)。

No, you need a for loop to iterate over each Node in a NodeList returned by the evaluate method.

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: Good movie btw :-).

更多推荐

本文发布于:2023-07-26 18:26:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1279313.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:元素   类型   Xpath   type   element

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!