【问题标题】:how to identify for the xml end tag while parsing using DOM?使用 DOM 解析时如何识别 xml 结束标记?
【发布时间】:2016-06-03 12:20:53
【问题描述】:

我想识别 xml 文件中每个元素的结束标记。

例子:

<Bank>
    <Account>
        <Id1>1001</Id1>
        <Name1>Sony Corporation</Name1>
        <Amt1>1000000</Amt1>
        <age>23</age>
   </Account>
   <Account>
        <Id2>1002</Id2>
        <Name2>Sony Corporation</Name2>
        <Amt2>1000000</Amt2>
   </Account>
</Bank>

现在我要识别

</Account> 

标签正在关闭。

使用DOM解析xml文件时如何识别这样的结束标签?

【问题讨论】:

  • 我认为这个问题没有意义。 DOM 不会给你单独的开始和结束标签。它代表整个元素,代表开始标签、结束标签和中间的所有内容。元素的内容表示为表示该元素的 DOM 节点的子节点。
  • 为什么要检测结束标签?
  • 我想将此 xml 文档转换为我的特定 JSON 格式,因此我想识别起始元素、结束元素、元素子元素和结束元素标记。

标签: java xml dom xml-parsing


【解决方案1】:

DOM 的抽象层次比这更高。它不公开开始和结束标记,它公开节点,呈现为树结构。如果您告诉我们您想要实现的目标(您想要解决的问题,而不是您想要解决的方式),那么我们可以建议正确的方法。

【讨论】:

【解决方案2】:
NodeList nl = doc.getElementsByTagName(Account);

        // looping through all song nodes <song>
        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            Element e = (Element) nl.item(i);
            // adding each child node to HashMap key => value
            map.put(Id1, parser.getValue(e, Id1));
            map.put(Name1, parser.getValue(e, Name1));
            map.put(Amt1, parser.getValue(e, Amt1));
            map.put(age, parser.getValue(e, age));

            // adding HashList to ArrayList
            songsList.add(map);
        }

【讨论】:

  • sohail 我不想将节点值添加到 HashMap 中,但我想在 Account 到达时识别它,而且我不想要任何硬代码。 :-D
猜你喜欢
  • 2013-11-28
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 2013-01-31
相关资源
最近更新 更多