将 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 解组到数组中 的相关文章

  • 在 XSL 中按 2 个字段分组

    我有下一个 xml
  • Spring 3 applicationContext-security-JDBC.xml 有 beans:bean 不是 bean?

    有人可以告诉我在我的 ApplicationContext 中我必须使用 beans bean 而不是 bean 以及如何修复它
  • JAXB Simplify 插件与 *.xjb

    我正在尝试使用简化插件 http confluence highsource org display J2B Simplify Plugin用一组更简单的属性替换复杂的属性 我按照插件手册使它工作 但我无法更改原始架构 因此我必须使用外部绑
  • 如何从客户端的 javax.ws.rs 实体获取纯 XML

    我有一个REST客户端创建一个XML实体通过Entity entity myObject MediaType APPLICATION XML TYPE 之后我打电话webTarget request buildPost 如何获取请求正文XM
  • 如何在 XSLT 输出中保留 XML 命名空间?

    XSL 样式表应将以下代码输出到 Internet Explorer
  • 使用 Python 将 XML 文件存储到 MS SQL DB 中

    我的 MSSQL DB 表包含以下结构 create table TEMP MyXMLFile XML 使用 Python 我尝试将本地存储的 XML 文件加载到 MS SQL DB 不需要 XML 解析 以下是Python代码 impor
  • 排除 JAXB 中的字段

    我有两节课 XmlRootElement public class A private Long id private B b setters and getters and XmlRootElement public class B pr
  • XML 模式导入 -vs- 绑定到前缀的命名空间

    我是 XML 模式的新手 并且遇到了将许多前缀绑定到中的各种名称空间的模式文档 xsd schema根元素并导入a subset这样的模式 在 XML 模式文档的其余部分中 他们愉快地使用了绑定在xsd schema元素 无论是否导入 那么
  • 使用 jQuery 导入 XML:在服务器上运行,而不是在本地运行

    我正在编写一个读取 XML 文件然后输出数据的脚本 当它在我的网络服务器上运行时它可以完美地工作 但不能从我的本地计算机上运行 542Data xml 文件与服务器和我的计算机上的HTML页面存储在同一文件夹中 我检查了所有文件版本是否相同
  • 在 XSD 架构中定义 XML 元素的别名

    是否有 XSD 语言支持或技巧 例如通过预处理器 来定义 XML 元素的别名 我想为架构中的所有元素添加别名 以便为 XML 文档的更神秘但网络带宽效率更高的版本创建一个选项 例如 我想定义一个名称 例如IRQ作为元素的别名Interrup
  • Javascript 日期转 xs:dateTime

    有没有一种简单的方法将标准 Javascript 日期格式转换为 xs dateTime 所以我有一个日期值 new Date 我需要以下格式 2015 01 16T20 26 53 974 03 00 so 2015 年 1 月 16 日
  • SQL Server 截断 XML 返回值

    我正在调试我们组织中现有的存储过程 它尝试返回一个 2047 字节长的 XML 字符串 使用 for XML auto 当我在 SSMS 中运行存储过程时 返回值出现在结果窗口中 如果我单击该值 显示为超链接 则会打开一个新窗口并显示整个字
  • 更改 xml 选择器中可绘制对象的色调

    我有一个按钮 其背景在 xml 中定义 我想根据按钮当前的状态 即按下 聚焦 正常 对按钮进行着色 下面是我的 xml 文件 还有 我的colored tint dark and colored tint都是我试图在从资源文件夹中调用的可绘
  • JAX-B - 如何将模式元素映射到现有的 Java 类 [重复]

    这个问题在这里已经有答案了 可能的重复 jaxb xjc 映射到现有域对象 https stackoverflow com questions 10420137 jaxb xjc mapping to existing domain obj
  • 设置元素的命名空间属性

    我正在尝试用 Java 创建一个包含以下元素的 XML 文档
  • Codemirror光标位置偏移

    我正在使用代码镜像在网页中显示 突出显示和编辑 xml 但我遇到了光标位置偏离插入位置的问题 因此 如果从闪烁光标所在的位置删除字符 则删除之前的字符您期望的那个会被删除 我假设它与我当前页面存在 css 冲突 因为它在我的页面之外运行良好
  • 使用 C# 在 XML 文档中查找特定值的好方法是什么?

    我正在调用 Oracle 公开的 WebService 它接受 ItemID 的输入并向我返回相应的 Item Number 我想获取从响应中包含的 XML 返回的项目编号 XML 看起来像这样
  • VS 2012 语法高亮

    我有 2 台计算机运行 VS 2012 pro 但它们都没有像 VS2010 那样显示基于 XML 的文件的任何突出显示或着色 我安装的唯一快捷版工具是 SQL 2012 所以我不认为这是问题所在 其中一台计算机上从未安装过 WebMatr
  • 在 XSLT 函数中处理空序列

    我有一个 XSLT 函数 它检查发送的参数是否采用 YYYYMMDD 格式 在某些情况下 我没有获得该函数的任何值 在这些情况下 SAXON 会抛出以下错误 不允许空序列作为 cda isValidDate 的第一个参数 有什么建议如何处理
  • USSD 接口 -> java web 应用程序通信

    请需要一些有关通过 USSD 接口进行 Java Web 应用程序通信的信息 我们需要实施这一举措 以覆盖拥有低端手机的贫困社区的目标客户群 我正在研究 USSD 作为与我们当前的 Java EE Web 应用程序进行通信的一种方式 我相信

随机推荐