[英]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.