如何在java中获取Element的标记类型

时间:2015-02-12 05:19:33

标签: java android xml parsing types

我想在Java中获取Element的标记类型。 例如,对于XML

<xml>
<item>
  <content></content>
</item>
</xml>

如果我想查找类型&#34; item&#34;的第一个标记,我需要一些方法来查找指定类型的所有标记。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:2)

有许多方法可以动态制作XML:

  1. XmlSerializer的即可。
  2. 示例:

     public static final void writeMapXml(Map val, String name, XmlSerializer out)
      throws XmlPullParserException, java.io.IOException
    {
        if (val == null) {
            out.startTag(null, "TextView");
            out.endTag(null, "TextView");
            return;
        }
    
        Set s = val.entrySet();
        Iterator i = s.iterator();
    
        out.startTag(null, "TextView");
        if (name != null) {
            out.attribute(null, "name", "TextView");
        }
    
        out.endTag(null, "TextView");
    }
    
    1. 使用可编辑界面的StringBuilder。
    2. 示例:

      Editable string= string.append("<Type> " + VALUE
                                      + " </Type>" +  "<Text>"
                                      + VALUE + "</Text>"+ "<Field>"
                                      +  VALUE + "</Field>" );
      

      我实际上已经实现了这两种方法,第二种方法更容易并且使用更少的代码行。

      参考:link

答案 1 :(得分:0)

最简单的方法是XPath

由于您需要根<item>标记下的<xml>标记,因此您需要的表达式为xml/item

在Android中,执行此操作的方法是: 首先,获取一个XPath实例:

XPath xpath = XPathFactory.newInstance().newXPath();

接下来,抓住InputSource。检查链接以了解不同的方法。

接下来,使用它来查找节点:

NodeList nodes = (NodeList) xpath.evaluate("xml/item", inputSource, XPathConstants.NODESET);

现在,NodeList包含您的<item>元素。