【问题标题】:Make all attribute names lowercase using JDOM使用 JDOM 使所有属性名称小写
【发布时间】:2012-07-09 10:59:05
【问题描述】:

我想解析一个 XML 文档并使用 JDOM 将属性名称更改为小写。

例如,我想要以下内容:

<record ID="1" name="Dom" />
<record iD="2" nAmE="Bob" />

变成:

<record id="1" name="Dom" />
<record id="2" name="Bob" />

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: java xml parsing lowercase jdom


    【解决方案1】:

    使用 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());
    }
    

    如果你不想使用 XPaths(这种方式也可能更快),你可以循环后代:

    for (Element e : mydoc.getDescendants(Filters.element())) {
        if (e.hasAttributes()) {
            for (Attribute a : e.getAttributes()) {
                a.setName(a.getName().toLowerCase());
            }
        }
    }
    

    罗尔夫

    【讨论】:

      猜你喜欢
      • 2018-06-26
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      相关资源
      最近更新 更多