我需要将 xml 文件转换为 Java 对象。
<PRODUCT id="10" name="Notebook">
<VALUE id="30" type="Formatted">This is mixed <TUNIT style="style-12">formatted</TUNIT> text value.</VALUE>
</PRODUCT>
这是产品类别:
@Getter
@Setter
@XmlRootElement(name = "PRODUCT")
@XmlAccessorType(XmlAccessType.FIELD)
public class Product {
@XmlAttribute(name = "id")
private String id;
@XmlAttribute(name = "name")
private String name;
@XmlElementRef(name = "VALUE")
private Value value;
}
这是值类:
@Getter
@Setter
@XmlRootElement(name = "VALUE")
@XmlAccessorType(XmlAccessType.FIELD)
public class Value {
@XmlAttribute(name = "id")
private String id;
@XmlAttribute(name = "type")
private String type;
@XmlValue
private String content;
@XmlElementRef(name = "TUNIT")
private Tunit tunit;
}
这里是Tunit类:
@Getter
@Setter
@XmlRootElement(name = "TUNIT")
@XmlAccessorType(XmlAccessType.FIELD)
public class Tunit {
@XmlAttribute(name = "style")
private String style;
@XmlValue
private String content;
}
当我设置@XmlAttribute
如果类具有@XmlElement属性,则它不能具有@XmlValue属性。
可以用JAXB解组这个xml吗?
在您的
因此,在
Value
类中,您需要定义一个列表
对于包含XML片段的XML示例
这是混合的
字符串“这是混合的”
图尼特
对象 - 字符串
“文本值”。
因此,
值
类最终将如下所示
@XmlRootElement(name = "VALUE")
@XmlAccessorType(XmlAccessType.FIELD)
public class Value {
@XmlAttribute(name = "id")
private String id;
@XmlAttribute(name = "type")
private String type;
@XmlMixed
@XmlElementRef(name = "TUNIT", type = Tunit.class)
private List<Object> content;
}
问题内容: 考虑这个例子- 我有一个称为Report的类,该类具有Message类型的字段。Message类具有一个称为“ body”的字段,该字段是一个字符串。“ body”可以是任何字符串, 但有时包含格式正确的XML内容 。如何确保当“正文”包含XML内容时,序列化采用XML结构的形式而不是当前的结构? 这是带有输出的代码- 报告 类别 讯息 类别 主要 输出如下- 如您在上面的输出中看到的
问题内容: 我有一个如下形式的XML: 如何使用JAXB批注将所有内容映射到String值。 那呢 问题答案: 您可以使用注释并指定一个DOMHandler来将DOM片段与String值相互转换。 举一个完整的例子 http://blog.bdoughan.com/2011/04/xmlanyelement-and-non-dom-properties.html
模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。 系统内置的标签中,volist、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如: <volist name="list" id="vo"> <volist name="vo['
请参考:http://www.kancloud.cn/manual/thinkphp/1817
模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。 系统内置的标签中,volist、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如: <volist name="list" id="vo"> <volist name="vo['
模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。 系统内置的标签中,volist、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如: {volist name="list" id="vo"} {volist name="vo['