【问题标题】:Loading java object when parsing xml using SAX xerces使用 SAX xerces 解析 xml 时加载 java 对象
【发布时间】:2011-12-06 03:56:42
【问题描述】:

如果我的 xml 看起来像:

<root version="1.1">
  <node number="1">
    <url>http://....</url>
  </node>
  <url>http://...</url>
</root>

现在在我的 endElement 事件中,我查看 xml 元素是否以 'url' 开头,但我如何知道 url 元素何时是 node 元素内的 url 元素,何时不是?

public void endElement(String uri, String localName, String qName, Attributes attributes) {
  if(qName.equals("url")) {
    someObject.setUrl(characters);
  }
}

【问题讨论】:

    标签: java xerces


    【解决方案1】:

    一种方法是通过维护一组元素名称或使用指示您位于子树内部的标志来跟踪“看到”的元素。

    第一种方式:在 startElement 中将元素名称压入堆栈,然后在 endElement 中将名称从堆栈中弹出。当您在 endElement 中看到“url”时,请检查“node”是否在堆栈中。

    另一种方式:在 startElement 中设置 nodeElementSeen = true,然后在 endElement 中设置 nodeElementSeen = false。当您在 endElement 中看到“url”时,请检查 nodeElementSeen = true。

    【讨论】:

      猜你喜欢
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 2011-06-29
      • 2012-08-27
      • 2010-10-29
      相关资源
      最近更新 更多