[英]how to xml format string parsing data in android studio in java
我正在嘗試使用此代碼
String DeviceInfo=
"<?xml version="1.0" encoding="UTF-8" standalone="yes"?><DeviceInfo dc="" dpId="" mc="" mi="" rdsId="" rdsVer=""/>"
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{ super.onActivityResult(requestCode, resultCode, data); if (resultCode ==
RESULT_OK) {
Bundle b = data.getExtras();
if (b != null) {
String deviceInfo = b.getString("DEVICE_INFO", "");
String pidData = b.getString("PID_DATA");
String dnc = b.getString("DNC", "");
String dnr = b.getString("DNR", "");
// String deviceinfo = bundle.getString("DEVICE_INFO");
Log.d("device ",""+deviceInfo);
String rdServiceInfo = b.getString("RD_SERVICE_INFO", "");
/* *//* if
(!dnc.isEmpty() || !dnr.isEmpty())
{ showLogInfoDialog("Device Info", dnc + dnr + " " +
deviceInfo + rdServiceInfo);
}
{
//showLogInfoDialog("Device Info","" +deviceInfo );
}*//*
try {
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(deviceInfo));
Document doc = db.parse(is);
NodeList nodes = doc.getElementsByTagName("employee");
// iterate the employees
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NodeList name = element.getElementsByTagName("value");
Element line = (Element) name.item(0);
System.out.println("value: " + getCharacterDataFromElement(line));
NodeList title = element.getElementsByTagName("title");
line = (Element) title.item(0);
System.out.println("Title: " + getCharacterDataFromElement(line));
}
}
catch (Exception e) {
e.printStackTrace();
}*/
text1.setText(pidData);
text.setText(deviceInfo);
} } }
在這個 xml 格式字符串中
我從您的問題中了解到的是您需要知道如何解析 String xml 數據。 然后將值映射到相應的字段。 下面是示例方法,它將從字符串中解析 xml 並一一給出元素。
/**
*
* @param inputXmlS is String xml Data
*/
public void xmlParser(String inputXmlS){
try {
XmlPullParserFactory xmlFactory = XmlPullParserFactory.newInstance();
xmlFactory.setNamespaceAware(true);
XmlPullParser xmlPullParser = xmlFactory.newPullParser();
xmlPullParser.setInput(new StringReader(inputXmlS));
int event = xmlPullParser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
if(event == XmlPullParser.START_DOCUMENT) {
Log.d(TAG,"Start document");
} else if(event == XmlPullParser.START_TAG) {
Log.d(TAG,"Start tag "+xmlPullParser.getName());
} else if(event == XmlPullParser.END_TAG) {
Log.d(TAG,"End tag "+xmlPullParser.getName());
} else if(event == XmlPullParser.TEXT) {
Log.d(TAG,"Text "+xmlPullParser.getText());
}
event = xmlPullParser.next();
}
Log.d(TAG,"End document");
} catch (XmlPullParserException | IOException e) {
e.printStackTrace();
}
}
所以現在你可以像下面這樣調用這個方法
String deviceInfo= "<?xml version="1.0" encoding="UTF-8" standalone="yes"?><DeviceInfo dc="" dpId="" mc="" mi="" rdsId="" rdsVer=""/>";
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{ super.onActivityResult(requestCode, resultCode, data); if (resultCode ==
RESULT_OK) {
xmlParser(deviceInfo);
}
}
而已。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.