android xmlpullparser 编译出错,○:安卓XmlPullParser无法处理XML的文件(只找到STARTDOCUMENT)...

(事后不能编辑) 但是当我要处理这与XmlPullParser,事件类型始终保持0 - 寻找我的XmlPullParser不识别任何其他标签。

我使用的处理(因为我是德国人,我用德语函数名称)的代码:

public void ladeXmlDatenInCubeNetz(String xmlDatenDateiName) {

String xmlDatenString = null;

try {

FileInputStream xmlDateiInput = new FileInputStream(new File(Environment.getExternalStorageDirectory().getPath()+"/ccdat.xml"));

InputStreamReader xmlInputStreamReader = new InputStreamReader(xmlDateiInput);

char[] EingabePuffer = new char[xmlDateiInput.available()];

xmlInputStreamReader.read(EingabePuffer);

xmlDatenString = new String(EingabePuffer);

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

factory.setNamespaceAware(true);

XmlPullParser xpp = factory.newPullParser();

xpp.setInput(new StringReader(xmlDatenString));

int eventType = xpp.getEventType();

cDevice4 cd = new cDevice4();

CubeNetz.clear();

while (eventType != XmlPullParser.END_DOCUMENT) {

if (eventType == XmlPullParser.START_DOCUMENT) {

if (eventType == XmlPullParser.START_TAG) {

if (xpp.getName().equals("Cube")) {

cd.setDeviceTypeSelector(0);

cd.setCubeCubeName(xpp.getAttributeValue("", "CubeName"));

cd.setCubeCubeRFAddress(xpp.getAttributeValue("", "CubeRF"));

cd.setCubeCubeSerialNumber(xpp.getAttributeValue("", "CubeSN"));

CubeNetz.add(cd);

} else if (xpp.getName().equals("Raum")) {

cd.setDeviceTypeSelector(1);

cd.setRaumName(xpp.getAttributeValue("", "RaumName"));

String rid = xpp.getAttributeValue("", "RaumID");

cd.setRaumID(Byte.valueOf(rid));

String aktRaumRF = xpp.getAttributeValue("", "RaumRF");

CubeNetz.add(cd);

} else if (xpp.getName().equals("Thermostat")) {

cd.setDeviceTypeSelector(2);

cd.setDeviceName(xpp.getAttributeValue("", "DevName"));

cd.setDeviceRFAddress(xpp.getAttributeValue("", "DevRF"));

cd.setDeviceSeriennummer(xpp.getAttributeValue("", "DevSer"));

cd.setDeviceRoomID(Integer.valueOf(xpp.getAttributeValue("", "DevRaumID")));

CubeNetz.add(cd);

}

}

}

try {

xpp.next();

} catch (XmlPullParserException e) {

e.printStackTrace();

}

}

xmlInputStreamReader.close();

xmlDateiInput.close();

} catch (XmlPullParserException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

类cDevice4包含用于访问ELV MaxCube-系统(加热控制)的执行情况。

我用一些在线验证器检查了Xml文件,它似乎是正确的。 那么我必须改变我的代码,我可以处理这个文件? 在此先感谢 GU_Meyer

2016-10-20

GU_Meyer

+0

用户java-json.jar将xml转换为json –

+0

我理解,比如使用json会更容易吗? 但是,即使文件是由xmlSerializer生成的(两者都是为Android指定的),也必须能够使用xmlPullparser读取xml文件。 –

+0

解决!将代码更改为以下代码可以正确读取文件: –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值