【问题标题】:How to map two similar XML Element using XMLBeam?如何使用 XMLBeam 映射两个相似的 XML 元素?
【发布时间】:2017-05-07 12:46:54
【问题描述】:

这是 XML 的格式,所以我很难抓住第二个实例:

<sec2_Ind>
 <SectC_EntyType>
  <TextField3>1</TextField3>
 </SectC_EntyType>
 <nameInfo>
  <subName>
   <fName>Name 1</fName>
  </subName>
 </nameInfo>
 <SectC_EntyType>
  <TextField3>2</TextField3>
 </SectC_EntyType>
 <nameInfo>
  <subName>
   <fName>Name 2</fName>
  </subName>
 </nameInfo>
<sec2_Ind>

从上面,我只能获得第一个实例的详细信息(名称 1),因为元素没有唯一标识符,除了 &lt;TextField3&gt;###&lt;/TextField3&gt;

什么是正确的@XBRead 格式?

【问题讨论】:

  • 我不确定你想读什么。你想要SectC_EntyType 元素,还是nameInfo 元素,还是两者的对?
  • 是的,两者都是。我只能使用@XBRead 获取第一个实例(TextField3:1 和 fName:Name 1)而不是后续实例(TextField3:2 和 fName:Name 2)

标签: java xml xml-parsing xmlbeans


【解决方案1】:

从你的回答我猜你想要一个字符串列表:

 @XBRead("//(TextField3 | fName)")
 List<String> getNames();

【讨论】:

  • 嗨@Cfx,我想我快到了。但是,我尝试了@XBRead("sec2_Ind//(TextField3 | fName)")@XBRead("//(TextField3 | fName)"),都给了我这个错误:ERROR with File (Missing Fields):
  • 这听起来不像是 Java 错误消息。你能发布完整的堆栈跟踪吗?
  • 嗨@cfx 我用上面的脚本找到了答案。问题在于我调用它并使用 .get(sequence value) 函数工作
猜你喜欢
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多