最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2011年05月14日 16:18:45   作者:  
不管是用 PHP 還是 C#, 在操作 XML 的時(shí)候我們除了一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)去取值之外, 還有一個(gè)非常方便的表達(dá)式, 就是 XPATH
而昨晚在使用 XPATH 的時(shí)候, 遇到一個(gè)問題, 改了一個(gè)晚上才搞定, 差點(diǎn)沒吐血. 果然基礎(chǔ)知識要掌握扎實(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# 給 XML 注冊命名空間和獲取歌曲標(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 注冊命名空間和獲取歌曲標(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;
}

相關(guān)文章

  • Unity實(shí)現(xiàn)瞄準(zhǔn)鏡效果

    Unity實(shí)現(xiàn)瞄準(zhǔn)鏡效果

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)瞄準(zhǔn)鏡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C#數(shù)據(jù)類型實(shí)現(xiàn)背包、隊(duì)列和棧

    C#數(shù)據(jù)類型實(shí)現(xiàn)背包、隊(duì)列和棧

    本文詳細(xì)講解了C#數(shù)據(jù)結(jié)構(gòu)類型,并實(shí)現(xiàn)背包、隊(duì)列和棧的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#自定讀取配置文件類實(shí)例

    C#自定讀取配置文件類實(shí)例

    這篇文章主要介紹了C#自定讀取配置文件類,實(shí)例分析了C#讀取配置文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 最新評論

    喀什市| 文山县| 曲麻莱县| 扎赉特旗| 朝阳县| 凌海市| 乾安县| 泽普县| 贵州省| 新泰市| 盐池县| 洞头县| 田阳县| 睢宁县| 株洲县| 尼玛县| 武义县| 个旧市| 阿克陶县| 高唐县| 贵阳市| 盘锦市| 仙居县| 凯里市| 长阳| 五大连池市| 安达市| 滨州市| 社旗县| 子长县| 思南县| 鹤峰县| 兴文县| 云龙县| 常德市| 玉山县| 阿克苏市| 青阳县| 高陵县| 南部县| 巴彦县|