当前位置:编程学习 > wap >>

这样的xml代码如何解析?

<?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,该怎么做,能否提供些参考代码? --------------------编程问答-------------------- 那你找id就可以了,每个标签就一个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());
}
}   

--------------------编程问答-------------------- 利用android自带的xml pull解析
判断是标签的开始,获取属性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;
                        }
                 }
--------------------编程问答-------------------- 麻烦,有点乱 --------------------编程问答-------------------- 学习中。。。 --------------------编程问答-------------------- 顶起 学习中~~~~~~~~~~~~~~~~~~~~ --------------------编程问答-------------------- 顶顶 --------------------编程问答-------------------- 学习中 --------------------编程问答-------------------- 我之前使用了dom4j,同一个xml文件,在java项目中解析完全正常,但是代码移植到android中,在2.1的模拟器上运行就出问题了,看上去好像attribute属性不能正确读取 --------------------编程问答-------------------- 刚又实验了一下,在2.2的模拟器上运行完全没有问题,看来是dom4j在2.1上运行有问题,有解决办法没?? --------------------编程问答-------------------- 用dom时属性不能用中文 会异常,用SAX可以用中文属性 --------------------编程问答-------------------- 没有中文
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,