亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2011年05月14日 16:18:45   作者:  
不管是用 PHP 還是 C#, 在操作 XML 的時候我們除了一個節(jié)點一個節(jié)點去取值之外, 還有一個非常方便的表達式, 就是 XPATH
而昨晚在使用 XPATH 的時候, 遇到一個問題, 改了一個晚上才搞定, 差點沒吐血. 果然基礎(chǔ)知識要掌握扎實啊!!

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

我們要獲取所有歌曲的標題, 一般是使用以下的 XPATH 表達式:

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

/playlist/trackList/track/title

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

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

使用 C# 給 XML 注冊命名空間和獲取歌曲標題:
復(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 注冊命名空間和獲取歌曲標題:
復(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;
}

相關(guān)文章

  • C#中調(diào)用SAPI實現(xiàn)語音合成的2種方法

    C#中調(diào)用SAPI實現(xiàn)語音合成的2種方法

    這篇文章主要介紹了C#中調(diào)用SAPI實現(xiàn)語音合成的2種方法,本文直接給出示例代碼,需要的朋友可以參考下
    2015-06-06
  • Unity的IPostprocessBuild實用案例深入解析

    Unity的IPostprocessBuild實用案例深入解析

    這篇文章主要為大家介紹了Unity的IPostprocessBuild實用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • C#實現(xiàn)打字小游戲

    C#實現(xiàn)打字小游戲

    這篇文章主要為大家詳細介紹了C#實現(xiàn)打字小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C#接口INotifyPropertyChanged使用方法

    C#接口INotifyPropertyChanged使用方法

    這篇文章介紹了C#接口INotifyPropertyChanged的使用方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C# 進行圖片壓縮的示例代碼(對jpg壓縮效果最好)

    C# 進行圖片壓縮的示例代碼(對jpg壓縮效果最好)

    這篇文章主要介紹了C# 進行圖片壓縮的示例代碼,幫助大家更好的利用c# 處理圖片,提高辦公效率,感興趣的朋友可以了解下
    2020-11-11
  • C#獲取機器碼的方法詳解(機器名,CPU編號,硬盤編號,網(wǎng)卡mac等)

    C#獲取機器碼的方法詳解(機器名,CPU編號,硬盤編號,網(wǎng)卡mac等)

    這篇文章主要介紹了C#獲取機器碼的方法,結(jié)合實例形式詳細分析了C#獲取硬件機器名、CPU編號、硬盤編號、網(wǎng)卡mac等信息的相關(guān)實現(xiàn)方法,需要的朋友可以參考下
    2016-07-07
  • C#實現(xiàn)系統(tǒng)休眠或靜止休眠的方法

    C#實現(xiàn)系統(tǒng)休眠或靜止休眠的方法

    這篇文章主要介紹了C#實現(xiàn)系統(tǒng)休眠或靜止休眠的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • WinForm遍歷窗體所有子控件的方法

    WinForm遍歷窗體所有子控件的方法

    這篇文章主要介紹了WinForm遍歷窗體所有子控件的方法,涉及C#遞歸遍歷相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • WPF實現(xiàn)3D粒子波浪效果

    WPF實現(xiàn)3D粒子波浪效果

    這篇文章主要為大家詳細介紹了WPF實現(xiàn)3D粒子波浪效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • C#實現(xiàn)掃雷游戲

    C#實現(xiàn)掃雷游戲

    這篇文章主要為大家詳細介紹了C#實現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評論