麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

操作XML文檔遇到的XMLNS問題及解決方法 (C# 和 PHP)

2020-01-24 03:43:22
字體:
供稿:網(wǎng)友
而昨晚在使用 XPATH 的時(shí)候, 遇到一個(gè)問題, 改了一個(gè)晚上才搞定, 差點(diǎn)沒吐血. 果然基礎(chǔ)知識(shí)要掌握扎實(shí)啊!!

假設(shè)有以下一份 XML 文檔:

我們要獲取所有歌曲的標(biāo)題, 一般是使用以下的 XPATH 表達(dá)式:

復(fù)制代碼 代碼如下:

/playlist/trackList/track/title

但是匹配的結(jié)果會(huì)讓你非常失望, 你會(huì)發(fā)現(xiàn)什么也得不到. 于是我在這個(gè)問題上卡了好幾個(gè)小時(shí), 最終萬能的 Google 告訴了我答案.

在第二行 playlist 那個(gè)節(jié)點(diǎn), 有一個(gè) XMLNS 屬性, 這個(gè)是 XML 的命名空間 (Namespace), 就是因?yàn)檫@個(gè)屬性的存在, 所以我們上面的 XPATH 就無效了. 怎么辦? 答案是在程序中為我們的 XML 注冊(cè)命名空間.

使用 C# 給 XML 注冊(cè)命名空間和獲取歌曲標(biāo)題:
復(fù)制代碼 代碼如下:

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);
}

使用 PHP 給 XML 注冊(cè)命名空間和獲取歌曲標(biāo)題:
復(fù)制代碼 代碼如下:

$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;
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄色成人小视频 | 天天夜碰日日摸日日澡性色av | 亚洲va久久久噜噜噜久久男同 | 麻豆一区二区99久久久久 | 一区二区三区欧美在线 | 一级成人欧美一区在线观看 | 欧美一级在线免费 | 美女污污视频在线观看 | 天天操天天骑 | 亚洲综合精品 | 久久人人97超碰国产公开结果 | 国产毛片在线看 | 久久成人综合视频 | 精品久久久久久久久久中文字幕 | 好吊色欧美一区二区三区四区 | 久久国产精品电影 | 欧美人与禽性xxxxx杂性 | 久草在线观看福利 | 黄色片在线观看网站 | 一级网站 | 中文字幕一区在线观看视频 | 欧美三级欧美成人高清www | 一区二区视 | 精久久久| 超碰97人| 一级黄色片武则天 | 一级做a爰性色毛片免费 | 国产亚洲小视频 | 在线看免电影网站 | 国产一区精品在线观看 | 亚洲卡通动漫在线观看 | 国产亚洲精品久久久久婷婷瑜伽 | 亚洲综合91| 精品国产一区二区三区久久久蜜月 | 国产精品久久久乱弄 | 黄色7777 | 久久久久北条麻妃免费看 | 欧美爱爱视频免费看 | 激情宗合| 涩涩屋av | 国产精品久久久久av |