当前位置: 首页 > 知识库问答 >
问题:

java中的xml流

田翔
2023-03-14

我试图读取大的XML文件,我只想读取车主的信息,但我无法将整个XML加载到内存中,如何做到这一点?

XML文件:

  <root>
    <message>
        <car>
            <owner>adam</owner>
        </car>
        <desk>
            <owner>sam</owner>
            <game>
               <owner>dorothy</owner>
            </game>
            <pen>
               <owner>dorothy</owner>
            </pen>
        </desk>
    </message>
</root>

例如,这段代码并不确切地知道它读取的内容。。如何确保我们阅读的是车主?

 XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
        XMLEventReader reader = xmlInputFactory.createXMLEventReader(new FileInputStream(entry.toFile()));

        while (reader.hasNext()) {
            XMLEvent nextEvent = reader.nextEvent();

            if (nextEvent.isStartElement()) {
                StartElement startElement = nextEvent.asStartElement();
                log.info(startElement.getName().toString());

                switch (startElement.getName().getLocalPart()) {
                    case "owner":
                        // whose owner. .. ?

共有1个答案

卫乐童
2023-03-14

可靠但可行的解决方案是创建一个小型状态机,在事件发生时捕获它们,并相应地改变状态

  1. 如果进入车辆节点-存储车辆参考
 类似资料:
  • 问题内容: 是否可以使用StAX(特别是woodstox)使用换行符和制表符来格式化输出xml,即采用以下格式: 代替: 如果在woodstox中无法做到这一点,是否还有其他轻量级的lib可以做到这一点? 问题答案: 通过JDK :。

  • 这是我想做的, 这是我的spend.csv文件: 从表视图: csv的表格视图 这是我想要的输出文件,名为spend.xml: 为了做到这一点,我在这里和那里找到了一些东西,并设法得到了这个: 此时,程序应该在终端中打印XML文件,但是; 遗憾的是,由于我的CSV文件中每个值都有双引号,我遇到了这个问题: java组织。w3c。多姆。DOMEException invalid_character_

  • 问题内容: 我正在编写一个处理具有深节点结构的xml文件(> 1000)的应用程序。使用woodstox(事件API)大约需要6秒钟来解析具有22.000个节点的文件。 该算法被置于与用户交互的过程中,其中只有几秒钟的响应时间是可以接受的。因此,我需要改进如何处理xml文件的策略。 我的过程分析xml文件(仅提取几个节点)。 处理提取的节点,并将新结果写入新的数据流(产生具有修改后的节点的文档副本

  • 问题内容: 我一直在尝试找出如何检查XML文件的语法,确保所有标签均已关闭,没有随机字符等。目前,我所关心的是确保在XML文件中没有损坏的XML。文件。 …但是我意识到我不想验证XML文件的结构;我 不想 针对XML Schema(XSD) 进行 验证…我只想检查XML语法并确定它是否正确。 问题答案: 您可以检查是否是一个XML文档 格式良好的 使用下面的代码: 上面的代码中引用的类如下: 这来

  • XML(可扩展标记语言)是一种非常流行的简单基于文本的语言,可用作不同应用程序之间的通信模式。 它被认为是传输和存储数据的标准方法。

  • 我正在尝试创建包含另一个XML的XML文档,比如child。 首先,我有一个对象Foo,它有一些属性。我用这个函数序列化它: 在另一个我无法访问Foo类的类中,我需要用这个Foo字符串在xml文档中保存一些数据。所以我有另一个像这样的物体: 当我序列化这个Bar对象并像xml文档一样保存它时。对于FooString元素,我得到了类似的结果。 我明白这个超文本标记语言字符实体(