我对生成XML文档有着奇怪的要求。我需要根据其他标签的值添加xml属性。
在下面的xml中,对于Row标记,我需要根据<table>
标记中的值显示 Column1 值。像二维矩阵一样。
例如:如果我在我的<table>
中有价值
<table name="table1" row="1" column="1" >
然后在我的<Row>
代码中,我需要添加以下属性:Column1
(列标记属性名称)= "table1"
(表格标记属性名称)
我为这个关联生成了值但是如何像这样创建动态标记xmlAttribute?
我需要以这种方式生成我的XML ..
<Tree name="" desc="" title="" >
<Column>
<Column name="Column1" desc="" group="" id="1"/>
</Column>
<Row>
<Row id =1 name=" " desc="" ="" Column1 = "table1">
<Row id = 2 name="" desc="" Column1 = "table2" />
</Row>
<Row id = 3 name=" " desc="" id="" Column1 = "table3" />
</Rows>
<table>
<table name="table1" row="1" column="1" >
<table name="table2" row="2" column="1" >
<table name="table3" row="3" column="1" >
</table>
</Tree>
答案 0 :(得分:0)
这是使用具有任意名称的属性编写用于编组的类的方法。
public class Row {
private Map<QName,Object> any;
private String name;
private String type;
@XmlAnyAttribute
public Map<QName,Object> getAny(){
if( any == null ){
any = new HashMap<QName,Object>();
}
return any;
}
@XmlAttribute
public String getName(){
return name;
}
public void setName( String value ){
name = value;
}
@XmlAttribute
public String getType(){
return type;
}
public void setType( String value ){
type = value;
}
}
如果您没有使用名称空间,设置属性将如下所示:
Row r1 = new Row();
r1.getAny().put( new QName( "Column1" ), "table1" );