0
我需要解析XML,并使用JDOM将所有属性名称更改为小写。有没有一个很好的方法来做到这一点?JDOM - 降低所有属性名称
所以,如果我有:
<record ID="1" name="Dom" />
<record iD="2" nAmE="Bob" />
就变成:
<record id="1" name="Dom" />
<record id="2" name="Bob" />
我需要解析XML,并使用JDOM将所有属性名称更改为小写。有没有一个很好的方法来做到这一点?JDOM - 降低所有属性名称
所以,如果我有:
<record ID="1" name="Dom" />
<record iD="2" nAmE="Bob" />
就变成:
<record id="1" name="Dom" />
<record id="2" name="Bob" />
使用JDOM 2.0.2你很可能使用XPath和循环的名称。问题是,如果元素有多个属性可以解析为相同的小写名称,比如'ID'和'id'....但这可能会导致冲突不必处理。
尝试一些类似的代码(仅在没有命名空间的命名空间返回属性):
XPathExpression<Attribute> xp = XPathFactory.instance().compile("//@*", Filters.attribute());
for (Attribute a : xp.evaluate(mydoc)) {
a.setName(a.getName().toLowerCase());
}
如果你不想使用的XPath(这种方式也可能更快),可以循环后裔:
for (Element e : mydoc.getDescendants(Filters.element())) {
if (e.hasAttributes()) {
for (Attribute a : e.getAttributes()) {
a.setName(a.getName().toLowerCase());
}
}
}
罗尔夫