gpt4 book ai didi

android - 属性的 XML 解析

转载 作者:行者123 更新时间:2023-11-30 04:04:55 24 4
gpt4 key购买 nike

嗨,伙伴们,我正在研究我的 xml 属性的 xml 解析

<CallLists> <CallList ID="1" Name="Name1" Desc="Ignore" CreatedOn="2/15/2011 1:48:30 PM" CreatedBy="def"> <CallList ID="2" Name="Name2" Desc="Agree" CreatedOn="3/8/2011 5:18:52 PM" CreatedBy="abc" > </CallLists>

我想解析这个 xml 以便我可以获得属性值我做的功课是

使用 soap 从 SERVER 获得响应后//查看xml并遍历

viewXML(Responsedata.toString());



public void viewXML(String xmlStr) throws IOException {
try{
byte[] xmlByteArray=xmlStr.getBytes();
ByteArrayInputStream xmlStream=new ByteArrayInputStream(xmlByteArray);
InputStreamReader xmlReader=new InputStreamReader(xmlStream);
XmlParser parser=new XmlParser(xmlReader);
try{
traverse(parser,"");
}
catch(Exception exc){
exc.printStackTrace();
}
return;
}
catch(IOException e){
return;
}
}



public void traverse(XmlParser parser,String indent) throws Exception{
boolean leave=false;
String sValue="";
do{
ParseEvent event=parser.read();
ParseEvent pe;
switch(event.getType()){
case Xml.START_TAG:
if (event.equals("calllists")){

}
if("ID".equals(event.getAttribute(0))){
pe=parser.read();
sValue=pe.getText()+"~~";

}
if("Name".equals(event.getAttribute(1))){
pe=parser.read();
sValue=sValue+pe.getText()+"~~";
}

if("Desc".equals(event.getAttributes())){
pe=parser.read();
sValue=sValue+pe.getText()+"~~";
}

if("CreatedOn".equals(event.getAttributes())){
pe=parser.read();
sValue=sValue+pe.getText()+"~~";
}


if("CreatedBy".equals(event.getName())){
pe=parser.read();
sValue=sValue+pe.getText()+"~~";
}
traverse(parser,"");
break;
case Xml.END_TAG:
leave=true;
break;
case Xml.END_DOCUMENT:
leave=true;
break;
case Xml.TEXT:
break;
case Xml.WHITESPACE:
break;
default:
}
}while(!leave);
}

最佳答案

你让事情变得复杂了。

改用 SAX,它是 Android SDK 的一部分 here是一个很好的教程。

您还应该关注 Default Handler( here )。仔细看看这些方法:

startElement(String uri, String localName, String qName, Attributes 属性)

endElement(String uri, String localName, String qName)

字符(char[] ch, int start, int length)

关于android - 属性的 XML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com