问题
给定以下 XML 配置文件:
<main>
<name>JET</name>
<maxInstances>5</maxInstances>
<parameters>
<a>1</a>
<b>
<b1>test1</b1>
<b2>test2</b2>
</b>
</parameters>
</main>
我需要提取 name 和 maxInstances 元素的值,然后提取参数元素的整个内部文本。例如
name = "JET"
maxInstances = 5
parameters = "<a>1</a><b><b1>test1</b1><b2>test2</b2></b>"
最终,参数块可以包含任何格式良好的 XML。
尝试的解决方案
以下代码适用于 name 和 maxInstances 但不适用于参数:
@XmlRootElement(name="main")
public class Main {
@XmlElement(name="name", required="true")
private String name;
@XmlElement(name="maxInstances", required="true")
private Integer maxInstances;
@XmlElement(name="parameters")
private String parameters;
}
我尝试根据以下想法查看解决方案,但找不到合适的解决方案。
是否有不同的类型可以用于表示 XML 树的参数对象,我可以解析以生成字符串?例如
@XmlElement(name="parameters")
private XmlNodeObject parametersNode;
public String getParameters() {
// Collapse node to single line of text
return innerText;
}
还是我需要使用一些不同类型的注释?
@XmlSpecialAnnotation(...)
@XmlElement(name="parameters")
private String parameters;
我需要切换到不同风格的解析器吗?使用两种风格的解析器是好还是坏?