我有以下XML结构:
<doc>
<group name="name1">
<group name="subname1">
<item att="att1"/>
</group>
<group name="subname3">
<item att="att3"/>
</group>
</group>
<group name="name2">
<group name="subname2">
<item att="att2"/>
</group>
</group>
</doc>
如果我正在使用dom.getDocumentElement().getElementsByTagName("group")
,那么我将得到xmlfile的所有“组”(name1,subname1,subname3,.......)。
如何只找到第一组(name1和name2)?
答案 0 :(得分:2)
试试这个:
dom.getDocumentElement().getElementsByTagName("group")[0];
答案 1 :(得分:0)
试试这个..
NodeList nodeList = doc.getElementsByTagName("doc");
for (int i = 0; i < nodeList.getLength(); i++)
{
Node node = nodeList.item(i);
if(node.getNodeType() == Node.ELEMENT_NODE)
{
Element e = (Element) node;
NodeList resultNodeList = e.getElementsByTagName("group");
int resultNodeListSize = resultNodeList.getLength();
for(int j = 0 ; j < resultNodeListSize ; j++ )
{
Node resultNode = resultNodeList.item(j);
Element fstElmnt1 = (Element) resultNode.getParentNode();
Log.v("name--", ""+ ( fstElmnt1.getAttribute("name")));
}
}
}
答案 2 :(得分:0)
您可以按照here的说明使用XPath,并使用像此/doc/group/@name = 'name1' or /doc/group/@name = 'name2'
这样的XPath表达式来仅检索具有set属性字段“name”的组,该名称等于name1
或{{ 1}}。
如果您只想提取name2
子项的组标记,则XPath表达式会缩短为doc
。如果它们被定义为XML中/doc/group
的子级,则还会自动检索<group name="name3">
和<group name="name4">
。