欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

xpath 解析xml 不是万能的,有时xpath是不行的

更新时间: 2014-01-05 02:01:42 责任编辑: Author_N1

 

xpath 解析xml 不是万能的,有时候xpath是不行的
	@Test
	public void dom4jXpath() throws DocumentException, ParserConfigurationException, SAXException, IOException, TransformerException{
		
//		DocumentBuilderFactory builderFactory =  DocumentBuilderFactory.newInstance();
//		DocumentBuilder db = builderFactory.newDocumentBuilder();
//		
//		Node contextNode = db.parse(new File("contentNew.html"));
//		NodeList a = XPathAPI.selectNodeList(contextNode , "/html/body/div[2]/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody");
//		System.out.println(a.getLength());
		SAXReader reader = new SAXReader();
		Document document = reader.read(new File("oks.html"));
//		System.out.println(document.asXML());
//		System.out.println(document.asXML());
//		XPath path = DocumentHelper.createXPath("/html/body");
//		List<Element> elements = path.selectNodes(document);
//		List<Element> elements = document.selectNodes("//td[@align='left']");
		List<Element> elements = document.selectNodes("/html/body/div/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/a");
		for(Element element :elements){
			System.out.println(element.asXML());
		}
		System.out.println(elements.size());
//		findLinks(document);
	}


说明:

1,上面的api是dom4j 和 apache.xpath实现,因为在  dom4j 取不出火狐生成的 xpath路径时,我怀疑是不是dom4j对xpath实现有问题,但是apache的实现也没有让我有多少惊喜

2,oks.html在附件中提供

上面是一片支离破碎的代码,很不美观,但是却记录着 xpath 对我的困惑。

说一下我的困惑,看看有没有大侠可以给解决下:

我要取得数据就是xpath 为

/html/body/div/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/a

的列表,但是真的取不出来,最后自己写了个xpath   //td[@align='left'] 可以取出来了,很疑惑


不能上传文件,把oks.html内容放着了




 			
			
		
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:01:42
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/4715/
本文WWW.DOC100.NET DOC100.NET版权所有。