当前位置: 首页 > 面试题库 >

使用Java拆分xml文件

安明亮
2023-03-14
问题内容
> <?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新闻头条| 板球新闻-Yahoo! 新闻印度</ title>

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

> `<description>`查看Yahoo!的最新板球新闻头条!新闻印度。查找来自印度和世界各地的板球热门故事,并深入报道板球新闻。</ description>

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

> <版权>版权所有(c)2011 Yahoo! Inc.保留所有权利。

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

> <ttl> 5 </ ttl>

> < 图片>

> title新闻头条| 板球新闻-Yahoo! 新闻印度</ title>

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

<url> http://l.yimg.com/os/mit/media/m/index/img/Yahoo_logo_zh- IN.gif </ url>

多尼说,/ /图像> <项目> <标题>过时的日程安排会耗尽玩家

<description> Chennai,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>

<source> PTI </ source>

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

</ item>

<项目>

<title>印度,巴基斯坦贸易秘书将于4月27-28日举行会议</ title>

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

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

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


问题答案:

我将为此使用javax.xml.xpathJava 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());
        }
    }

}


 类似资料:
  • 问题内容: 我有以下xml文件作为输入.... 我想将这个xml文件并通过像这样的java代码将其拆分为多个文件… File1.xml File2.xml File3.xml 以及更多的xml文件。每个xml文件最多包含10个或15个IRP_ACCOUNT。 有人能帮帮我吗 ? 问题答案: 快速而肮脏:

  • 我需要使用VTD XML和XPath读取一个大xml并在多个节点中拆分结果。我在这里找到了一些解决方案,但它拆分了节点,但没有父级信息。 我为什么要找: XPath string: /CATALOG/MAIN/CD基于XPath的文档应该拆分 1) 初始文件: <代码> 2) 结果:文件1: <代码> 文件2: <代码> 文件3: <代码> 感谢您的时间和建议。 顺致敬意,

  • 我只有一个具有大xml文件最后顺序的文件,而不是许多小xml文件。你能告诉我出了什么问题吗?太感谢你们了!

  • 问题内容: 我有一个1GB的Xml文件,如何使用Java将其拆分成格式更小的Xml文件? 这是一个例子: 谢谢。 问题答案: 在这种情况下,我将使用StAX解析器。这样可以防止将整个文档一次读入内存。 将XMLStreamReader推进到子片段的本地根元素。 然后,您可以使用javax.xml.transform API从此XML片段中生成一个新文档。这会将XMLStreamReader推进到该

  • 我正在开发一个小程序,将一个非常大的XML文件(超过2Gb)分成小块。 在研究了许多库之后,我选择了VTD-XML(对大文件使用VTDGenHuge),并开始开发一些代码测试。但我在读取文件的段字节时遇到了一个问题。 我得到抵消和长度: 然后我得到结果信息: 最后,我尝试提取字节段以将其写入另一个文件: 但我正在学习java。lang.IndexOutOfBoundsException 此外,当我