将 XML 解组到数组中

2024-01-12

我想将 XML 文件解编为元素数组。

例子 :

<root>
   <animal>
      <name>barack</name>
   </animal>
   <animal>
      <name>mitt</name>
   </animal>
</root>

我想要一系列动物元素。

当我尝试时

JAXBContext jaxb = JAXBContext.newInstance(Root.class);
Unmarshaller jaxbUnmarshaller = jaxb.createUnmarshaller();
Root r = (Root)jaxbUnmarshaller.unmarshal(is);
system.out.println(r.getAnimal.getName());

这个显示mitt,最后一个动物。

我想这样做:

Animal[] a = ....
// OR
ArrayList<Animal> = ...;

请问我该怎么办?


您可以执行以下操作:

Root

如果该字段更改为,此示例将同样工作List<Animal> or ArrayList<Animal>.

package forum13178824;

import javax.xml.bind.annotation.*;

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Root {

    @XmlElement(name="animal")
    private Animal[] animals;

}

Animal

package forum13178824;

import javax.xml.bind.annotation.*;

@XmlAccessorType(XmlAccessType.FIELD)
public class Animal {

    private String name;

}

Demo

package forum13178824;

import java.io.File;
import javax.xml.bind.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(Root.class);

        Unmarshaller unmarshaller = jc.createUnmarshaller();
        File xml = new File("src/forum13178824/input.xml");
        Root root = (Root) unmarshaller.unmarshal(xml);

        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(root, System.out);
    }

}

输入.xml/输出

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
    <animal>
        <name>barack</name>
    </animal>
    <animal>
        <name>mitt</name>
    </animal>
</root>

了解更多信息

  • http://blog.bdoughan.com/2010/09/jaxb-collection-properties.html http://blog.bdoughan.com/2010/09/jaxb-collection-properties.html
  • http://blog.bdoughan.com/2011/06/using-jaxbs-xmlaccessortype-to.html http://blog.bdoughan.com/2011/06/using-jaxbs-xmlaccessortype-to.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 XML 解组到数组中 的相关文章

  • 连接两个表的查询的 SQL Server“FOR XML”输出

    我是 SQL Server 中 FOR XML 功能的新手 我正在使用 SQL Server 2012 我有两个表 Word 和 Word Expansion 样本数据 表 字 WordOID Word 1 PIPE 2 WIRE 表 Wo
  • 如何强制 Eclipse 将 xml 布局和样式显示为文本?

    我最近升级到带有 ADT 20 0 3 的 Eclipse 4 2 Juno 如果我查看旧项目中的布局或样式 Eclipse 只会向我显示其适当的基于控件的编辑器 我想编辑语法突出显示的 xml 文本 我没有找到将插件的编辑器切换到此模式的
  • 如何将 XML 文档嵌入到 XHTML 文档中?

    例如 我如何嵌入
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 如何像 JAX-RS(CXF 和 Jersey)那样使用 JAXB 封送 java.util.List [重复]

    这个问题在这里已经有答案了 似乎最新的 JAX RS 可以处理返回 java util List 作为 XMLRootElement 的方法 但普通的 JAXB 不能 我想模仿 CXF 和 Jersey 正在做的事情 换句话说 我想编组一个
  • 在 XSLT 中使用“<”而不是简单的“<”进行比较有什么大不了的?

    好的 在 XSLT 中我经常看到
  • 如何在C#中从XML读取键值

    我有下面的 xml 格式文件 名为 ResourceData xml
  • 使用 C# 将 XML 转换为 BSON

    我想将 XML 文件转换为 BSON 然后将 BSON 导入 MongoDB 我进行了搜索 但找不到如何使用 C 来隐藏它 请向我提供使用 C 执行此操作的源代码 今天有同样的问题 这肯定不是最好的解决方案 但是 我在我的项目中以这种方式解
  • 无法访问 Web 服务端点:Spring-WS 2

    我是 Spring WS 的新手 我已经根据 JAXB 带注释的类生成的模式定义了一个端点 但是 当我尝试通过soapUI访问端点时 我收到以下错误以及404响应代码 No endpoint mapping found for SaajSo
  • XML 渲染错误 Android 预览 N

    更新后我已将 android SDK 更新为 android Preview N 但收到此 xml 渲染错误 单击详细信息后 它显示以下堆栈跟踪如何避免这种情况 org jetbrains android uipreview Renderi
  • android中使用xml的新自定义字体方法

    随着 android 发布 O 预览版 添加了一个新功能 称为xml 中的字体 它很容易实现 但我没有什么疑问 让我首先添加最好的方法1 右键单击资源文件夹并前往新建 gt Android 资源目录 新的出现资源目录窗口 2 在资源类型列表
  • 为什么 JDOM 的 getChild() 方法返回 null?

    我正在做一个关于 html 文档操作的项目 我想要现有 html 文档中的正文内容将其修改为新的 html 现在我正在使用 JDOM 我想在我的编码中使用 body 元素 为此 我在编码中使用了 getChild body 但它向我的程序返
  • strings.xml 中的 Android 变量

    我在某处读到如何在 XML 文档中使用变量 他们说这很简单 我想也是如此 我在 Android strings xml 文件中成功地使用了它 我一整天都这样使用它 直到突然 android 停止解析它并停止将它视为变量 我这样使用它
  • 如何访问 Scala XML 中的父元素

    The scala xml包表示带有标记树节点的 XML 但是这棵树在 Scala 2 7 中是单向的吗 因为似乎没有办法访问Elem给定的父级Elem 这似乎同样适用于父母Document 例如 在 XOM 中你有getParent an
  • 使用 ElementTree 在 python 中解析 xml

    我对 python 很陌生 我需要解析一些脏的 xml 文件 这些文件需要先清理 我有以下 python 代码 import arff import xml etree ElementTree import re totstring wit
  • CDATA 真的有必要吗?

    我经常使用内联 Javascript 通常是在我制作的 WordPress 主题中 我没有听说过将内联 Javascript 包装在 直到几个月前 几年来我一直在以相当的能力水平做这些事情 我用谷歌搜索了一下 听说人们使用它是因为他们的 J
  • (Kiss)XML xpath 和默认命名空间

    我正在开发一个 iPhone 项目 需要解析一些 xml xml 可能包含也可能不包含默认名称空间 我需要知道如何解析 xml 以防它使用默认命名空间 由于我需要读取和写入 xml 因此我倾向于使用 KissXML 但我愿意接受建议 这是我
  • 使用 powershell 将 XML 转换为特定的 JSON 结构

    需要有关将 xml 转换为特定 json 结构的帮助 XML 看起来像这样
  • Android,语言文件不起作用

    我现在正在创建一个 Android 应用程序 并尝试为我的母语添加语言文件 但在某种程度上 这对我不起作用 我尝试在两部不同的手机中加载该应用程序 但结果相同 之前创建过语言文件 效果良好 但这次不行 手机设置为瑞典语 语言文件适用于我创建
  • 如何反序列化 XML 文档

    如何反序列化此 XML 文档

随机推荐