色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

XML文檔搜索使用小結

瀏覽:182日期:2022-06-03 16:29:51
大家在.NET中處理XML文檔的時候,經常會需要找到文檔中的某個節點的數據。要找到某個節點,有許多種方法,在這里我就把幾種常用的方法給大家總結一下。

  首先,我們要做的是要把一個XML文檔裝入到一個XmlDocument對象中去。

  先引用幾個名字空間:

  using System.Xml;
  using System.Xml.Xsl;
  using System.Xml.XPath;

  這幾個名字空間大家根據名字就知道它的意思了,我就不在這兒多說了。然后就是裝入XML文件的代碼,方法如下:

  String xmlfile="c:/member.xml"; //其中的xmlfile是你要載入的XML文件的路徑。
  XmlDocument myDoc = new XmlDocument(); //定義一個XmlDocument對象。
  myDoc.Load(xmlfile);

  
  這樣,我們就有一個叫myDoc的XML文檔。我們現在就來找這個文檔中的一些節點。我們先來看這個XML文件的內容。
  <?xml version="1.0" encoding="UTF-8"?>
  <members>
   <member>
   <name>Tim</name>
   <hobby>reading</hobby>
   <homepage>www.aspcool.com</homepage>
   </member>
   <member>
   <name>Sandy</name>
   <hobby>learning</hobby>
   </member>
   <member>
   <name>Shally</name>
   <hobby>tranlating</hobby>
   </member>
   <member>
   <name>Christine</name>
   <hobby>working</hobby>
   </member>
  </members>

  我們現在可以用下面的方法找到name為tim的節點:
  myDoc.ChildNodes.Item(1).ChildNodes.Item(0).FirstChild.InnerText

  這個方法要求我們一層層向內找我們需要的數據,如果層次很多的話,做起來就會很費勁,也容易出錯。幸好.NET給我們提供了另外一個方法SelectSingleNode和SelectNodes方法可以讓我們直接找到所要的數據。比如,我們要找姓名為“Tim”的用戶的hobby,我們可以用下面的方法:
  myDoc.SelectSingleNode ("http://member[name="Tim"]").ChildNodes.Item(1).InnerText

  其中//代表里面任意層的子節點。這樣我們就可以很快的找到所要的東西。SelectSingleNode是找到一個單一的節點,SelectNodes可以找到許多節點。

  在XML中尋找某個子節點,大家都知道怎么做了,我們現在在一個特殊的XML文件---XSL文件中去找一個子節點,這個應該怎么實現呢?

  假設我現在有一個這樣的XSL文件:
  <?xml version="1.0" encoding="gb2312"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <xsl:preserve-space elements="codes"/>
   <xsl:template match="/">
   <xsl:apply-templates/>
   </xsl:template>

   <xsl:template match="image">
   <table align="{@location}">
   <tr>
   <td>
   <img align="{@location}">
   <xsl:attribute name="src">../FTP_Magazine/FTP_Issue/<xsl:value-of select="@url"/></xsl:attribute>
   </img>
   </td>
   </tr>
   <tr>
   <td>
   <center>
   <xsl:apply-templates/>
   </center>
   </td>
   </tr>
   </table>
   </xsl:template>

  </xsl:stylesheet>

  我們在asp.net中有兩個變量,我們需要XSL文件在Transform XML文件的時候采用這兩個變量。我們該如何去做呢?

  我所采取的方法是先把XSL文件作為XML Document裝載進來,在使用之前,我們找到需要修改的節點,用我們的變量對其進行修改。這個時候我們查找這個節點的時候需要做些變動,代碼如下:

  XmlNamespaceManager nsmanager = new XmlNamespaceManager(xslDoc.NameTable);
  nsmanager.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform");
  xslDoc.SelectSingleNode("http://xsl:attribute[@name="src"]", nsmanager).InnerXml = 你所需要輸給的變量

  也就是說對于類似<xsl:attribute name="src">../FTP_Magazine/FTP_Issue/<xsl:value-of select="@url"/></xsl:attribute>這樣的節點,在我們查找以前,我們需要定義一個XmlNamespaceManager,用它我們就可以找到我們所需要的節點。
標簽: XML/RSS
相關文章:
主站蜘蛛池模板: 国产亚洲欧洲一区二区三区 | 手机看片自拍日韩日韩高清 | 欧美日韩一区二区在线观看视频 | 国产精品无码久久综合网 | 亚洲综合爱久久影院 | 99re7在线精品免费视频 | 3级毛片| 久久久全国免费视频 | 精品欧美一区二区三区精品久久 | 久草免费在线观看视频 | 精品欧美高清一区二区免费 | 亚洲综合色就色手机在线观看 | 日韩视频观看 | 欧美日韩综合精品一区二区三区 | 国产婷婷一区二区在线观看 | 日韩欧美在线视频 | 欧美精品一区二区三区免费播放 | 日本精品久久久久中文字幕 1 | 久久不见久久见免费影院www日本 | 国产成年网站v片在线观看 国产成人aa在线视频 | 免费99视频有精品视频高清 | 欧美成人免费xxx大片 | 性欧美videos高清精品 | 久久久www免费人成看片 | 欧美一区二区三区免费播放 | 92精品国产自产在线观看 | 久久怡红院亚欧成人影院 | 极品丝袜高跟91白沙发在线 | 黄色美女视频免费看 | 午夜精品久视频在线观看 | 在线成人毛片 | 美国一级毛片不卡无毒 | 日韩在线观看一区二区三区 | 精品国产成人三级在线观看 | 日日碰日日操 | 成人免费视频一区二区 | 日韩一级片在线播放 | 91久久国产综合精品 | 国内精品久久久久久野外 | 五月色婷婷琪琪综合伊人 | 亚洲三级网址 |