使用java分割xml文件

tr_*_*ech 1 java xml split

< ?xml 版本=“1.0”编码=“utf-8”?> < rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:ynews="http://news.yahoo.com/rss/" version="2.0" > < 频道 >

<标题>板球新闻头条| 板球新闻 - 雅虎!印度新闻< /title>

<链接>http://in.news.yahoo.com/cricket/</link>

<描述>查看来自雅虎的最新板球新闻头条!新闻印度。查找来自印度和世界各地的顶级板球故事和板球新闻的深入报道。</description>

<语言>en-IN</语言>

<版权>版权所有 (c) 2011 Yahoo! 公司保留所有权利< /copyright>

< pubDate>2011-04-06T15:30:02+05:30</pubDate>

<ttl>5</ttl>

<图片>

<标题>板球新闻头条| 板球新闻 - 雅虎!印度新闻< /title>

<链接>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>多尼表示,繁忙的赛程会让球员精疲力竭< /title>

<描述>4 月 6 日钦奈 (PTI) ...</description>

<链接>http://in.news.yahoo.com/hectic-schedule-drain-players-says-dhoni-20110406-023100-889.html</link>

<pubDate>2011-04-06T09:31:00Z</pubDate>

<来源>PTI</来源>

< guid isPermaLink="false">/hectic-schedule-drain-players-says-dhoni-20110406-023100-889.html</guid>

</项目>

<项目>

< title>印度和巴基斯坦贸易部长将于4月27日至28日举行会议</ title>

<描述>新德里,4 月 6 日 (PTI) ...</description>

<链接>http://in.news.yahoo.com/india-pakistan-trade-secretaries-meet-april-27-28-20110406-023100-140.html</link>

我只想要此 XML 中的标题,即仅位于 < item>< title>MESSAGES</title> 标记之间。还必须连续不断地打印一条消息。我怎样才能做到这一点。

bdo*_*han 5

javax.xml.xpath为此,我将使用Java SE 5 中包含的 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());
        }
    }

}
Run Code Online (Sandbox Code Playgroud)