【发布时间】:2021-06-16 07:46:34
【问题描述】:
我有某种复杂的 XML 数据结构。该结构包含不同的片段,如下例所示:
<data>
<content>
<h1>Hello <strong>World</strong>. This is some text.</h1>
</content>
<content2>.....</content2>
....
</data>
Java 对象的样子,
@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。这是一些文本。”
请帮助我。提前致谢
【问题讨论】:
-
看起来您在 XML 中嵌入了 HTML。这意味着您的 XML 现在很可能格式不正确,并且无法解析它。如果你幸运的话,你可能会得到一些东西,但你的代码将仍然不可靠。您必须先修复输入数据。如果事实证明你确实有有效的 XML 碰巧使用了 HTML 之类的标签,那么你应该能够遍历 h1 标签的 DOM 树并吐出所有文本。
-
看起来上面的文档格式正确。仅仅因为您认为它是 HTML 并不会使文档格式错误。
标签: java xml xml-parsing