我是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?
2条答案
按热度按时间aoyhnmkz1#
您使用的是哪个xml解析库?不确定它是否可以解析第一行
<?xml version="1.0" encoding="ISO-8859-1"?>
,建议您尝试对xml文件的第一行进行rm,如果可以,显然,您可以更改您的xmp解析库。omqzjyyz2#
您的xml无效。
1.这是无效的标记:
</Header>
1.写入空标记的正确方法是:
<Header/>
1.在https://jsonformatter.org/xml-parser这样的在线解析器上验证xml是一个很好的实践