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

使用JAXB将XML文件解析为流

羊煜
2023-03-14

我有一个XML文件,其中包含大量员工记录(比如高达1M),如下所示:

<employee>
 <name>peter</name>
 <mobile>435432</mobile>
<employee>
<employee>
 <name>Mary</name>
 <mobile>324213</mobile>
<employee>
<employee>
 <name>May</name>
 <mobile>54342423</mobile>
<employee>

我使用JAXB将员工记录映射到以下Java对象:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "employee")
public class Employee {
    @XmlElement(name = "name")
    private String name;

    @XmlElement(name = "mobile")
    private String mobile;
}

XML的内容不能被更改,并且给定这个XML,我如何使用JAXB将每个员工XML记录解封给员工对象,以便我可以逐个处理它?

共有1个答案

冉丰茂
2023-03-14

您可以使用StAXXMLStreamReader解析XML,然后导航到第一个emoloyeeelement并在该状态下解组 ,然后将其定位到下一个 emolloyee元素并重复。

我的XML没有根元素

您应该能够为您的用例利用SequenceInputStream。您将在InputStream的3个实例上创建:

    < li >一个表示您创建的开始元素 < li >第二个代表您问题中显示的内容 < li >最后一个表示您在第一个< code>InputStream中打开的元素的关闭元素。

然后将SequenceInputStream的实例传递给我在原始答案中提到的XMLStreamReader,你应该很好。

  • http://docs.oracle.com/javase/7/docs/api/java/io/SequenceInputStream.html
 类似资料:
  • 问题内容: 我如何在Java或C中使用vtd-xml解析如下的xml文件? 任何帮助,将不胜感激。 谢谢 问题答案: 我想其中有些取决于您要如何解析文件。 这是一个“非生产”示例,其中使用了一些有用的技术,包括: XPath选择(此处仅使用“ / *”) 浏览所有同级节点 通过子节点向下看 使用AutoPilot将节点属性提取到地图中 希望能帮助到你 产生以下输出: 添加带有AutoPilot循环

  • 如何在java或C中使用vtd xml解析如下xml文件? 任何帮助都将不胜感激。 谢谢

  • 我必须在JAXB中将xml解析为字符串对象。但是如何为这个xml创建对象 Country.xml 为了解析这个xml,我创建了一个类来映射对象,它创建对象并在控制台中打印出来。却不知道自己做错了什么。 当我运行程序时,我会得到 com . sun . XML . internal . bind . v2 . runtime . illegalanotationexception:illegalan

  • 问题内容: 我有一个看起来像这样的XML文件: 我想将其读入python对象,类似于字典列表。因为标记是绝对固定的,所以我很想使用正则表达式(我非常擅长使用那些正则表达式)。但是,我想我会检查是否有人知道如何在此处轻松避免使用正则表达式。我对SAX或其他解析没有太多经验,但是我愿意学习。 我期待向您展示如何在不使用regexes的情况下快速完成此操作。谢谢你的帮助! 问题答案: 如果您认为正则表达

  • 我试图解析一个xml文件,但似乎无法提取我想要的部分。xml文件是为自己开发的系统准备的,我对它的布局没有任何控制权。 文件如下所示: 我希望得到这样的输出—— 我能得到name@domain因此—— 我可以用这个获得所有的值属性- 我似乎无法返回与用户相关联的角色。我想应该是这样的—— 然而,这并不返回任何东西。 关于如何获得用户的任何想法

  • 我尝试使用DocumentBuilderFactory解析XML文件,如下所示: 其中ndsFileInputStream是一个InputStream,包装包含XML的文件。 当文件包含Unicode字符(如Δ)时,会出现异常。当我去掉包含违规字符的行时,解析工作正常。 该文件包含特征