假设有以下一份 XML 文档:

我们要获取所有歌曲的标题, 一般是使用以下的 XPATH 表达式:
代码如下:
/playlist/trackList/track/title
但是匹配的结果会让你非常失望, 你会发现什么也得不到. 于是我在这个问题上卡了好几个小时, 最终万能的 Google 告诉了我答案. 
在第二行 playlist 那个节点, 有一个 XMLNS 属性, 这个是 XML 的命名空间 (Namespace), 就是因为这个属性的存在, 所以我们上面的 XPATH 就无效了. 怎么办? 答案是在程序中为我们的 XML 注册命名空间. 
使用 C# 给 XML 注册命名空间和获取歌曲标题:
代码如下:
  XmlDocument xml = new XmlDocument();
  xml.Load("music.xml"); 
 XmlNamespaceManager xnm = new XmlNamespaceManager(xml.NameTable);
  xnm.AddNamespace("x", "http://xspf.org/ns/0/");
  string xpath = "/x:playlist/x:trackList/x:track/x:title";
  foreach (XmlNode xn in xml.SelectNodes(xpath, xnm)) 
 {  Console.WriteLine(xn.InnerText);  } 
代码如下:
  $xml = simplexml_load_file(‘music.xml‘);  $xml->registerXPathNamespace(‘x‘,‘http://xspf.org/ns/0/‘);  $xpath = ‘/x:playlist/x:trackList/x:track‘;  $result = $xml->xpath($xpath);  foreach($result as $row){  echo $row->title;  }