<?xml version="1.0" encoding="utf-8"?><ConA id="container" >
<ConA id="ca_idnum" name="coa" >
<Text id="t_idnum"></Text>
<Edit id="e_idnum"></Edit>
</ConA> <ConB id="cb_sel">
<Select id="select"></Select>
<ConA id="subContainer" >
<Button id="submit"></Button>
</ConA>
</ConB> <ConC id="cb_sel">
<Button id="button"></Button>
</ConC></ConA>对于上面这样多层嵌套的xml文件该如何解析?我想解析这段代码,然后在控制台打印出每个节点的id,该怎么做,能否提供些参考代码?
<ConA id="ca_idnum" name="coa" >
<Text id="t_idnum"></Text>
<Edit id="e_idnum"></Edit>
</ConA> <ConB id="cb_sel">
<Select id="select"></Select>
<ConA id="subContainer" >
<Button id="submit"></Button>
</ConA>
</ConB> <ConC id="cb_sel">
<Button id="button"></Button>
</ConC></ConA>对于上面这样多层嵌套的xml文件该如何解析?我想解析这段代码,然后在控制台打印出每个节点的id,该怎么做,能否提供些参考代码?
InputStream in=this.getResources().getAssets().open("test.xml")
public void CXmlTests(InputStream in)
{
LoadXmlTask loadTask=new LoadXmlTask();
boolean result=true;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(in);
Element root = dom.getDocumentElement();
NodeList items = root.getElementsByTagName("Layout");//查找所有person节点
if(items==null) return;
//取Layout节点
Node LayoutNode = items.item(0);
NamedNodeMap nMap=LayoutNode.getAttributes();//取Layout属性
if(nMap!=null)
{
for(int j=0;j<nMap.getLength();j++)
System.out.println(nMap.item(j).getNodeName()+" "+nMap.item(j).getNodeValue());
}
/*取Layout内所有节点*/
NodeList nodeList=LayoutNode.getChildNodes();
for(int j=0;j<nodeList.getLength();j++)
{
Node sNode=nodeList.item(j);
//这里处理 ConA ConB ConC 节点
System.out.println(sNode.getNodeName());
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
判断是标签的开始,获取属性id的值.public static XmlPullParser getXmlPullParser(Context context,
String fileName) throws XmlPullParserException, IOException {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(context.getAssets().open(fileName), "UTF-8");
return parser;
}
-------------------------------XmlPullParser parser = BaseXMLParse.getXmlPullParser(is);
int eventType = parser.getEventType();
while (eventType != parser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
.......
break;
}
}