< ?xml version="1.0“encoding="utf-8"?>< rss xmlns:media="http://search.yahoo.com/mrss/”xmlns:ynews="http://news.yahoo.com/rss/“version="2.0”>
< title>Cricket新闻头条新闻Cricket雅虎!新闻India< /title>
< link>http://in.news.yahoo.com/cricket/< /link>
< description>Check从雅虎拿出最新的板球新闻头条!印度新闻。查找来自印度和world.< /description>的板球新闻的顶级故事和深度报道。
< language>en-IN< /language>
< copyright>Copyright (c) 2011雅虎!All rights reserved< /copyright>公司
< pubDate>2011-04-06T15:30:02+05:30< /pubDate>
< ttl>5< /ttl>
< image>
< title>Cricket新闻头条新闻Cricket雅虎!新闻India< /title>
< link>http://in.news.yahoo.com/cricket/< /link>
< url>http://l.yimg.com/os/mit/media/m/index/img/Yahoo_logo_en- IN.gif< /url>
< /image> < item>< title>Hectic计划将耗尽玩家,Dhoni< /title>说
< description>Chennai,4月6日(PTI) ...< /description>
< link>http://in.news.yahoo.com/hectic-schedule-drain-players-says-dhoni-20110406-023100-889.html< /link>
< pubDate>2011-04-06T09:31:00Z< /pubDate>
< source>PTI< /source>
< guid isPermaLink="false">/hectic-schedule-drain-players-says-dhoni-20110406-023100-889.html< /guid>
< /item>
< item>
< title>India,巴基斯坦贸易秘书将于4月27-28日会晤< /title>
< description>New德里,4月6日(PTI) ...< /description>
< link>http://in.news.yahoo.com/india-pakistan-trade-secretaries-meet-april-27-28-20110406-023100-140.html< /link>
我只想要这个XML的标题,这只是< item>< title>MESSAGES< /title>标记之间的标题。还得一个接一个地打印消息。我该怎么做呢。
发布于 2011-04-06 12:15:28
为此,我将使用Java 5中包含的javax.xml.xpath
API。
import java.io.FileReader;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
public class Demo {
public static void main(String[] args) throws Exception {
XPath xPath = XPathFactory.newInstance().newXPath();
FileReader reader = new FileReader("input.xml");
InputSource xml = new InputSource(reader);
NodeList titleNodes = (NodeList) xPath.evaluate("//item/title", xml, XPathConstants.NODESET);
for(int x=0; x<titleNodes.getLength(); x++) {
System.out.println(titleNodes.item(x).getTextContent());
}
}
}
发布于 2011-04-06 12:16:11
解析该文件以创建DOM文档。在这个DOM上,选择所有的title
元素,它们的文本内容是您要寻找的标题。
使用dom4j
的快速示例
File xml = new File("input.xml"); // replace with your document
SAXReader reader = new SAXReader();
Document doc = reader.read(xml);
List titles = doc.selectNode("//item/title"); // a list of all title elements
for (Object obj:titles)
System.out.println(((Element) obj).getText());
应该将所有标题打印到控制台。
发布于 2011-04-06 13:35:58
这是经常发生的事情。我有一个groovy脚本来完成这个任务。这里可以买到。
https://github.com/ramanathanrv/utils/blob/master/groovy/split_xml.groovy
用法: groovy split_xml.groovy
这不是我的密码。我从某个地方得到了这段代码,但实际上忘了源代码。
https://stackoverflow.com/questions/5566124
复制相似问题