【发布时间】:2012-03-20 20:20:50
【问题描述】:
我正在使用带有 XStream 的 StaxDriver 并尝试解析此 XML:
<cad:MyObj xmlns:cad="namespace" cad:testeId="873" >
<cad:node1>value node 1</cad:node1>
</cad:MyObj>
变成一个对象。
我可以使用前缀解析 node1,但我不知道如何使用 Stax 配置 XStream 以使用前缀 cad 和属性 (testeId)。
这是我的会议:
QNameMap qnameMap = new QNameMap();
qnameMap.setDefaultPrefix("cad");
qnameMap.setDefaultNamespace("namespace");
StaxDriver stax = new StaxDriver(qnameMap);
stax.getInputFactory().setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, true);
stax.setRepairingNamespace(true);
stax.setQnameMap(qnameMap);
xstream = new XStream(stax);
xstream.alias("MyObj", MyObj.class);
xstream.useAttributeFor(MyObj.class, "testeId");
我试图用这个“作弊”:
xstream.aliasField("cad:testeId", ProdutoVersao.class, "testeId");
但没用 =/
希望有人知道怎么做。
【问题讨论】: