Digester:提取映射的节点名称
我的问题与此接近:消化器:提取节点名称
即使有了答案,我也可以不知道。
这是我的 xml 文件(来自 smartgwt RestDataSource POST):
<data>
<isc_OID_14>
<attribute1>value1</attribute1>
<attribute2>value2</attribute2>
</isc_OID_14>
</data>
我想使用 Commons Digester 创建以下地图: {attribute1=value1, attribute2=value2}
我已经有了这些行:
digester = new Digester();
digester.addObjectCreate("data", HashMap.class);
// some "put" rules matching something like data/*
return digester.parse(myFile);
我不知道
。 isc_OID_14
或 attribute1
可以命名为 foobar 或 id 或 attribute335...
My question is close to this one: Digester: Extracting node name
Even with the answer, I can't find out.
Here is my xml file (from smartgwt RestDataSource POST):
<data>
<isc_OID_14>
<attribute1>value1</attribute1>
<attribute2>value2</attribute2>
</isc_OID_14>
</data>
I would like to create, with Commons Digester, the following map :
{attribute1=value1, attribute2=value2}
I already have those lines:
digester = new Digester();
digester.addObjectCreate("data", HashMap.class);
// some "put" rules matching something like data/*
return digester.parse(myFile);
I do not know the list nor the name of tags in the <data><sourceId /></data>
. isc_OID_14
or attribute1
can be named foobar or id or attribute335...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为这样的东西就是你想要的:
基本上它使用
ExtendedBaseRules
进行通配符匹配。有 3 条规则:
data
上,ObjectCreate
aHashMap
data/?
(数据的直接子级)上, map[ID]=name
(如果不需要,请将此Rule
设置为无操作)*
(其他所有内容)上,mapname=text
在我的机器上,打印:
API links
org.apache.commons.digester
org.apache.commons.digester.Rule
org. apache.commons.digester.ExtendedBaseRules
I think something like this is what you want:
Basically it uses
ExtendedBaseRules
for the wildcard matching.There are 3 rules:
data
,ObjectCreate
aHashMap
data/?
(direct child of data), map[ID]=name
(make thisRule
a no-op if not needed)*
(everything else), mapname=text
On my machine, this prints:
API links
org.apache.commons.digester
org.apache.commons.digester.Rule
org.apache.commons.digester.ExtendedBaseRules