请教jdom xpath 问题

windhuo 2006-10-08 11:35:24
我使用jdom和xpth查询一个xml,查询不出内容请问是什么原因,
程序没有报错,jdom.jar,jdom-xpath.jar,saxpaht.jar,jaxen-core.jar都引入了,而且不是xpath语法问题,因为我用javax.xml.xpath就可以查询的出,
...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgysc 2006-10-11
  • 打赏
  • 举报
回复
比如你的xml文件结构是这样
<a>
<b name="b1">
<c1>1</c1>
<d1>2</d1>
</b>
<b name="b2">
<c2>1</c2>
<d2>2</d2>
</b>
</a>

调用方法:
ReadXml rx=new ReadXml(“你的xml文件路径.xml");
String c1=rx.getNodeValue("b[@name='1']/c1");
zgysc 2006-10-11
  • 打赏
  • 举报
回复
给你我写的这个吧,我已经用了一年多了,没有问题

public class ReadXml
{
private String xmlpath;
org.jdom.input.SAXBuilder builder=null;
org.jdom.Document doc=null;
org.jdom.Element root=null;
java.io.InputStream input=null;
java.io.InputStreamReader inputreader=null;
private boolean flag=false;
public ReadXml(String xmlpath)
{
this.xmlpath=xmlpath;
try
{
builder=new org.jdom.input.SAXBuilder();
doc=builder.build(xmlpath);
root=doc.getRootElement();
flag=true;
}
catch(Exception e)
{
System.out.println("ReadXml(xmlpath) Fail!"+e.getMessage());
}
}


public String getNodeValue(String xpathstr)
{
try
{
org.jdom.Element childNode = (org.jdom.Element)org.jdom.xpath.XPath.selectSingleNode(root,xpathstr);
return childNode.getText();

}
catch(Exception e)
{
return "Error:getNodeValue("+xpathstr+")";
}

}

public String getNodeAttributeValue(String xpathstr,String attrName)
{
if(flag)
{
try
{
org.jdom.Element childNode = (org.jdom.Element)org.jdom.xpath.XPath.selectSingleNode(root,xpathstr);
return childNode.getAttribute(attrName).getValue();
}
catch(Exception e)
{
e.printStackTrace();
return "Error:getNodeAttributeValue("+xpathstr+","+attrName+")";
}
}
else
{
return "DOC_NULL";
}
}

}
buyaowen 2006-10-10
  • 打赏
  • 举报
回复
代码贴上来

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧