如何创建读取xml文件的java模型类

rdlzhqv9  于 2023-03-11  发布在  Java
关注(0)|答案(2)|浏览(105)

我是xml解析的新手,目前我有一个xml文件,我试图在junit测试用例中通过XmlMapper读取该文件。但是当我运行测试时,没有获得任何错误,只有该文件的空值。我有以下Xml文件-

<?xml version="1.0" encoding="ISO-8859-1"?>
<Root version="1.0">
    </Header>
    <Value line="1">
        <Id> 20868PW </Id>
        <Price> 7 </Price>
     </Item>
</Root>

下面是阅读xml文件的代码-

private MyResponse getMockResponse() throws IOException {
 XmlMapper xmlMapper = new XmlMapper();
 File file = new File("src/test/MockedFile.xml");
 return xmlMapper.readValue(file, MyResponse.class);
}

MyResponse.java

public class MyResponse {
  @XmlElement(name="Root")
  private RootResponse root;
}

RootResponse.java

@XmlRootElement(name="Root")

public class RootResponse {
 @XmlElement(name="Value")
 private List<Value> value;
 @XmlElement(name="Header")
 private List<Header> header;
 @XmlAttribute
 private String version;

我的模型类中是否缺少了什么东西,从而导致文件无法正确读取并返回root = null?

aoyhnmkz

aoyhnmkz1#

您使用的是哪个xml解析库?不确定它是否可以解析第一行<?xml version="1.0" encoding="ISO-8859-1"?>,建议您尝试对xml文件的第一行进行rm,如果可以,显然,您可以更改您的xmp解析库。

omqzjyyz

omqzjyyz2#

您的xml无效。
1.这是无效的标记:</Header>
1.写入空标记的正确方法是:<Header/>
1.在https://jsonformatter.org/xml-parser这样的在线解析器上验证xml是一个很好的实践

相关问题