繁体   English   中英

如何将 XML 元素的全部内容解析为 java 中的 object

[英]How to parse the full content of a XML element to object in java

我有某种复杂的 XML 数据结构。 该结构包含不同的片段,如下例所示:

<data>
   <content>
     <h1>Hello <strong>World</strong>. This is some text.</h1>
   </content>
   <content2>.....</content2>
  ....
</data>

Java Object 看起来像,

@Getter
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "data")
public class Data
{
  @XmlElement(name = "content")
  private Content content;
  
  @XmlElement(name = "content2")
  private Content2 content2;
}


@Getter
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "content")
public class Content
{
  @XmlElement(name = "h1")
  private H1 h1;
 
}

@Getter
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "h1")
public class H1
{
  @XmlPath("text()")
  private String text;

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

但我将 h1 -> text 的值设为“Hello”,但我也想要全文值

“你好。这是一些文字。”

或者

“Hello World。这是一些文字。”

请帮助我。 提前致谢

在我看来,你所感知的东西是按设计工作的。

您的 H1 class 具有文本和强大的元素。 指示解析器使用 H1 的 text() 内容填充 H1.text,根据定义,该内容是该级别上所有文本部分的串联。 即使填充了 strong 字段,您也会丢失在原始文本中找到 strong 的信息。

我相信您将内容定义为 DOM XML 数据(不确定如何使用您使用的注释)可能会更好,因此在以后的某个时间,如果需要,您可以将其序列化回原始字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM