android xml资源数组的问题 ,xml文件内容如下,我要怎么获取item键值对中name这个属性的值
<?xmlversion="1.0"encoding="utf-8"?>-<resources>-<string-arrayname="MyArray"><itemnam...
<?xml version="1.0" encoding="utf-8" ?> - <resources>- <string-array name="MyArray"> <item name="1,35,3">第一</item> <item name="5,34,0">第二</item> <item name="1,30,1">第三</item> <item name="2,31,0">第四</item> </string-array></resources>
展开
展开全部
读取数据代码:getValue(this,"第四");
public String getValue(Context context, String strText) {
String strData = "";
DocumentBuilderFactory factory = null;
DocumentBuilder builder = null;
Document document = null;
InputStream inputStream = null;
// 首先找到xml文件
factory = DocumentBuilderFactory.newInstance();
try {
// 找到xml,并加载文档
builder = factory.newDocumentBuilder();
inputStream = context.getResources().getAssets()
.open("data.xml");
document = builder.parse(inputStream);
// 找到根Element
Element root = document.getDocumentElement();
NodeList nodes = root.getElementsByTagName("item");
// 遍历根节点所有子节点
Element cardElement;
String strName;
String strValues;
for (int i = 0; i < nodes.getLength(); i++) {
cardElement = (Element) (nodes.item(i));
strName = cardElement.getAttribute("value");
Element eValues = (Element) cardElement
.getElementsByTagName("item").item(0);
strValues = eValues.getFirstChild().getNodeValue();
if (strValues.equals(strText)) {
strData = strName;
break;
}
if (i == nodes.getLength() - 1) {
Log.v(TAG, "未查到相关信息。。。");
strData = "";
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return strData;
}
public String getValue(Context context, String strText) {
String strData = "";
DocumentBuilderFactory factory = null;
DocumentBuilder builder = null;
Document document = null;
InputStream inputStream = null;
// 首先找到xml文件
factory = DocumentBuilderFactory.newInstance();
try {
// 找到xml,并加载文档
builder = factory.newDocumentBuilder();
inputStream = context.getResources().getAssets()
.open("data.xml");
document = builder.parse(inputStream);
// 找到根Element
Element root = document.getDocumentElement();
NodeList nodes = root.getElementsByTagName("item");
// 遍历根节点所有子节点
Element cardElement;
String strName;
String strValues;
for (int i = 0; i < nodes.getLength(); i++) {
cardElement = (Element) (nodes.item(i));
strName = cardElement.getAttribute("value");
Element eValues = (Element) cardElement
.getElementsByTagName("item").item(0);
strValues = eValues.getFirstChild().getNodeValue();
if (strValues.equals(strText)) {
strData = strName;
break;
}
if (i == nodes.getLength() - 1) {
Log.v(TAG, "未查到相关信息。。。");
strData = "";
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return strData;
}
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码取?解析XML,(SAX,dom都可以),解析的时候会得到一个attr这样的数据,attr.getValue(name) OR attr.getValue(<name>对应的ID)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个你需要同时按住Alt键和/键。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询