在Java DOM中从XML获取元素名称
发布时间:2020-12-14 05:16:47 所属栏目:Java 来源:网络整理
导读:我想要获取元素名称并在 XML中打印数据,但不知道如何在特定元素下获取数据. 这是XML示例和我的代码. mdb movies movie id="godfather" titleThe Godfather/title year1972/year directors director idref="francisfordcoppola"/ /directors genres genreCrim
|
我想要获取元素名称并在
XML中打印数据,但不知道如何在特定元素下获取数据.
这是XML示例和我的代码. <mdb>
<movies>
<movie id="godfather">
<title>The Godfather</title>
<year>1972</year>
<directors>
<director idref="francisfordcoppola"/>
</directors>
<genres>
<genre>Crime</genre>
<genre>Drama</genre>
</genres>
<cast>
<performer>
<actor idref="marlonbrando"/>
<role>Don Vito Corleone</role>
</performer>
</cast>
</movie>
</movies>
<performer id="kimnovak">
<name>Marilyn Pauline Novak</name>
<dob>1933-02-13</dob>
<pob>Chicago,Illinois,USA</pob>
<actedin>
<movie idref="vertigo"/>
</actedin>
</performer>
</mdb>
try {
File fXmlFile = new File(filename);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
NodeList nodes = doc.getElementsByTagName("movie");
System.out.println("nodes length"+ nodes.getLength());
for (int i = 0; i < nodes.getLength(); i++){
Element element = (Element) nodes.item(i);
NodeList name = element.getElementsByTagName("title");
Element line = (Element) name.item(0);
System.out.println(": " + line.getFirstChild().getTextContent());
我只想得到电影中的元素.但以下代码也读取 NodeList nodes = doc.getElementsByTagName("movie");
我的第一部电影的最终输出应该是这样的 ('godfather','The Godfather','1972','Crime;Drama')
解决方法
一种方法是从电影标签开始阅读而不是电影标签.不知道这是你正在寻找的!
NodeList nodes = doc.getElementsByTagName("movies");
Element element = (Element) nodes.item(0);
NodeList movieList = element.getElementsByTagName("movie");
for (int i = 0; i < movieList.getLength(); i++) {
Element movieElement = (Element) movieList.item(i);
System.out.println(movieElement.getAttributes().getNamedItem("id").getNodeValue());
NodeList name = movieElement.getElementsByTagName("title");
NodeList year = movieElement.getElementsByTagName("year");
NodeList genres = movieElement.getElementsByTagName("genres");
Element genreline = (Element) genres.item(0);
System.out.println(name.item(0).getFirstChild().getTextContent());
System.out.println(year.item(0).getFirstChild().getTextContent());
System.out.println(genreline.getElementsByTagName("genre").item(0).getTextContent()
+ ":" + genreline.getElementsByTagName("genre").item(1).getTextContent());
}
输出:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
