Java,解析 xml 属性的原始未转换值。 Jaxson 或 jaxb
Java, parse raw, unconverted value of an xml attribute. Jaxson or jaxb
给定以下 XML 输入,我如何解析 "descr" 属性的原始值?
<?xml version="1.0"?>
<declaration descr=" "/>
我尝试跟随 JAXB 和 Jackson。在这两种情况下,都会打印 space,而我希望
 
JaxB 测试:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "declaration")
public class DeclarationTestJaxb {
@XmlAttribute
private String descr;
public String getDescr() {
return descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
@Override
public String toString() {
return descr;
}
public static void main(String[] args) throws JAXBException {
Unmarshaller unmarshaller = JAXBContext.newInstance(DeclarationTestJaxb.class).createUnmarshaller();
System.out.println(unmarshaller.unmarshal(new File("test.xml")));
}
}
我对@JsonRawValue 和@JacksonXmlProperty(isAttribute = true) 进行了同样的尝试。
但是输出仍然被转换。
你不能。 XML 解析器总是在返回字符串之前解码实体。
给定以下 XML 输入,我如何解析 "descr" 属性的原始值?
<?xml version="1.0"?>
<declaration descr=" "/>
我尝试跟随 JAXB 和 Jackson。在这两种情况下,都会打印 space,而我希望
 
JaxB 测试:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "declaration")
public class DeclarationTestJaxb {
@XmlAttribute
private String descr;
public String getDescr() {
return descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
@Override
public String toString() {
return descr;
}
public static void main(String[] args) throws JAXBException {
Unmarshaller unmarshaller = JAXBContext.newInstance(DeclarationTestJaxb.class).createUnmarshaller();
System.out.println(unmarshaller.unmarshal(new File("test.xml")));
}
}
我对@JsonRawValue 和@JacksonXmlProperty(isAttribute = true) 进行了同样的尝试。 但是输出仍然被转换。
你不能。 XML 解析器总是在返回字符串之前解码实体。