gpt4 book ai didi

java - 具有属性和文本内容的复杂类型的 JAXB 反编码

转载 作者:行者123 更新时间:2023-12-01 18:07:04 25 4
gpt4 key购买 nike

我一直在尝试使用 JAXB 解码以下 XML 内容。

<?xml version="1.0" encoding="utf-8"?>
<Root xmlns="http://wso2.org/2016/wso2as-web">
<Property Key="name">value</Property>
</Root>

在几篇文章中提到在这种情况下使用 @XmlValue 注释来检索文本内容,但到目前为止,由于以下问题我失败了。

If a class has @XmlElement property, it cannot have @XmlValue property

到目前为止我准备的代码如下:

package org.test;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Root")
public class Root {
private Property property;

public Property getPropertyObject() {
return property;
}

public void setPropertyObject(Property property) {
this.property = property;
}

@XmlRootElement(name = "Property")
public static class Property {
@XmlAttribute(name = "Key")
private String key;
@XmlValue
private String text;

public String getKeyObject() {
return key;
}

public void setKeyObject(String key) {
this.key = key;
}

public String getValueObject() {
return text;
}

public void setValueObject(String value) {
this.text = value;
}
}
}

任何与此相关的帮助都非常感谢,因为我对 JAXB 相对较新。

最佳答案

您必须使用 @XmlAccessorType(XmlAccessType.FIELD) 注释 Property 类。

否则,它的 getXxx() 方法被视为元素,因为 getter 的名称与字段的名称不匹配。

关于java - 具有属性和文本内容的复杂类型的 JAXB 反编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com