JAVA中,怎么根据XML元素的属性值得到XML元素?
像如下的XML文档片断:
*********************************
<name address="wuhan"/>
<name2 address="wuhan"/>
<identification address="nanchang"/>
*********************************
我想得到address属性值为"wuhan"的元素的话,怎么得到.谢谢
问题点数:10、回复次数:6Top
1 楼aaa2003gf(珍惜 (MSN:aaa2003gf@hotmail.com))回复于 2006-03-05 21:47:12 得分 0
node里有方法Top
2 楼usherlight(xingtian)回复于 2006-03-05 22:10:13 得分 6
获取父节点,然后使用childNodes数组循环检索所有子节点的属性(getAttribute("address"))
如果=="wuhan"
就找到了。Top
3 楼sunrisefe()回复于 2006-03-06 11:36:35 得分 0
如果元素中有多个属性的话怎么做呢?
*********************************
<name address="wuhan" phone="2"/>
<name2 address="wuhan"/>
<identification address="nanchang"/>
*********************************
Top
4 楼sunrisefe()回复于 2006-03-06 11:56:17 得分 0
我用下面的方法先得到属性值满足某一条件的元素名称:
/**
* 得到指指定条件的元素。attrName为传进来的属性值;doc为文档
*/
private static String[] getElementName(String attrName,Document doc)
{
String[] ele;
Element rootEle=doc.getDocumentElement();
NodeList childNodes=rootEle.getChildNodes();
Element cur_ele;
while(int i=0;i<childNodes.getLength(); i++)
{
cur_ele=(Element)childNodes.item(i);
if(cur_ele.getAttribute("des").equalsIgnoreCase("true"))
ele[i]=childNodes.item(i).getNodeName();
}
return(ele);
}
总是在while处有语法错误Top
5 楼losebaby(可乐罐)回复于 2006-03-06 12:00:43 得分 4
while(int i=0;i<childNodes.getLength(); i++)
{
cur_ele=(Element)childNodes.item(i);
if(cur_ele.getAttribute("des").equalsIgnoreCase("true"))
ele[i]=childNodes.item(i).getNodeName();
}
这个是while的语法?
明明是一个for循环啊Top
6 楼sunrisefe()回复于 2006-03-06 14:26:14 得分 0
是啊,我检查了半天没有查出问题来。Top




