java - 在消化器中解析 map

标签 java xml apache-commons-digester

我有一个 XML 字符串作为

<ShowPercentage>     
    <SPGLevel>       
        <Level> 1 </Level>   
        <percentage>40</percentage>      
    </SPGLevel>
    <SPGLevel>       
        <Level> 2 </Level>
        <percentage>60</percentage>      
    </SPGLevel>
</ShowPercentage>

SPG 级别是可重复的。这是一个 key=Level 和 value=percentage 的 map

我想使用 Digester 解析这个 XML。任何人都可以帮助我开始吗?

最佳答案

答案可能类似于下面的代码,但我没有测试这个:

public class SampleDigester
{
  private Map<String, String> map = new HashMap<String, String>();

  public void run() throws IOException, SAXException {    
    Digester digester = new Digester();
    digester.push(this);

    digester.addCallMethod("ShowPercentage/SPGLevel", "addKey", 2);
    digester.addCallParam("ShowPercentage/SPGLevel/Level", 0);
    digester.addCallParam("ShowPercentage/SPGLevel/percentage", 1);
    digester.parse("input.xml");

  }

  public void addKey(String key, String value) {
    map.put(key, value);
  }

}

关于java - 在消化器中解析 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9292118/

相关文章:

c# - 当我的所有 .XSD 都存储为资源时,如何解析 .XSD 的 schemaLocation 属性?

java - XML 解析器 + 索引数据

java - 使用 JInterface 将列表从 Erlang 发送到 Java

java - 如何检查代理是否在 Java 中工作?

c - 多次调用 XML CharacterDataHandler 回调

java - 使用 xstream 将键值 xml 对映射到 java 映射

java - Apache Digester XML 解析器注释和复合模型

java - 使用digester3模式从xml属性中提取值

java - 使用 Java 从 JSON 中提取名称/值对

java - 如何格式化数组元素?