我正在尝试将以下“attrname”和“attrtype”xml元素封送和解封到一个类中(目前,我单独读取这些值,并在java中解组后构造对象。)
<wrapper>
<someOtherElement>xxx</someOtherElement>
<attrName ref="a">xxx</attrName>
<attrName ref="b">xxx</attrName>
<attrName ref="c">xxx</attrName>
<attrType attrRef="a">xxx</attrType>
<attrType attrRef="b">xxx</attrType>
<someOtherElement>xxx</someOtherElement>
</wrapper>
“ref”xml属性用于标识属性并作为“attrtype”xml元素的引用。但是“attrtype”xml元素是可选的,不能存在。没有“attrname”xml元素就不能有“attrtype”xml元素。
我需要生成类的“attribute”对象列表:
package example;
public class Attribute {
private String name;
private String ref;
private String type;
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
public String getRef() {
return ref;
}
public void setRef(String ref) {
this.ref= ref;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type= type;
}
}
我已经发现了以下相关问题。但这无助于我找到解决问题的办法。问题是找到所有相关的属性名和类型来构造java对象。
如果有任何正确的建议,我将不胜感激。如果我没有解释任何令人满意的事情,请不要犹豫,因为英语不是我的母语。
ps:我知道我可以使用不同的xml结构,很容易解决问题。但这对我来说是不可能的。
2条答案
按热度按时间3j86kqsm1#
您的xml文件不遵循任何模式,因此只能依赖其根元素名称和格式良好的事实。下面将其Map到通用 Package 器对象,然后对其进行处理以生成属性对象列表:
uelo1irk2#
这是同一任务的另一个解决方案。其思想是将初始文档转换为直接Mapxml形式,同时解析所有引用,然后将生成的xmlMap到java对象。
数据的xslt是:
直接Mapxml如下所示:
带有注解的代码如下:
注意本例中的所有文件都保存在类路径根目录中。