TinyXPath 原来是不支持 XML Namespace 的。

来源:互联网 发布:matlab 矩阵添加列 编辑:程序博客网 时间:2024/04/30 02:57
尝试用 TinyXPath 解读 flickr  的 RSS 2.0 聚合,发现其中很多元素都是包含 XML Namespace 修饰的 QName。用 http://www.topxml.com/ 的 XPathVisualiser 对照看我的 XPath query 是没有错的,但是在 TinyXPath 下无论如何就是解析不到我要的 media:content 元素。尝试了http://blog.joycode.com/zee/archive/2004/04/07/18490.aspx 的表达式,还是不行。
后来实验发现,TinyXPath 只是不能从名称精确定位这个元素,其它匹配还是可以的。于是很简单的使用元素序列和属性定位绕开了这个问题。
/rss/channel/item/media:content/@url

被我解决成

/rss/channel/item/*[8]/@url

就万事大吉了。

There's more than one way to do it.  -- Larry Wall, Inventor of Perl