<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C#中用SelectSingleNode方法解析帶有多個命名空間的XML文件

        今晚在博問看到一個問題:查找xml文件中特定屬性值的節點,給它增加一個新屬性,本以為很簡單,隨手寫了一個程序,卻遇到了問題,主要是多個命名空間的原因,查找了一些資料最終解決了,現把解決的辦法分享出來,大家如果有更好的方案歡迎留言討論。

        XML文件如下:

      <?xml version="1.0" encoding="utf-8" ?>
      <Enginuity:ViewControl
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x
      ="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d
      ="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc
      ="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:Enginuity
      ="clr-namespace:Enginuity.Core;assembly=Enginuity.Core">
      <Viewbox Stretch="Fill">
      <TextBox Name="Text_10" Value="abc"/>
      <TextBox Name="Text_11" Value="bcd"/>
      </Viewbox>
      </Enginuity:ViewControl>

        這里小小提示一下,Enginuity:ViewControl 這種寫法表示ViewControl的命名空間為Enginuity。

        現在要得到的是Name為Text_10的TextBox結點的Value屬性值:abc。

        關于SelectSingleNode方法大家可以參考:http://msdn.microsoft.com/en-us/library/h0hw012b.aspx

        這個方法有兩個參數,第一個是string xpath,這個是必須的,第二個是XmlNamespaceManager nsmgr,這個可選。重要的一點就是xpath的寫法,主要就是命名空間:節點/命名空間:節點/...,官方給的示例中只有一個命名空間,xml結構相對比較簡單。

        從上面的XML文件中很容易看出ViewControl的命名空間是Enginuity,但ViewBox的命名空間是什么呢?查找了XML文件命名空間的定義后,發現有這么一句”如果Xml文檔里沒有明確指出當前節點的命名空間,那么當前節點的命名空間繼承其父節點的命名空間“,ViewBox的父節點是ViewControl,ViewControl的命名空間是Enginuity,同時注意到Enginuity還不是最終的命名空間,Enginuity的命名空間是xmlns,那么是哪一個呢?

        動手試唄,于是寫出下面的程序:

                  XmlDocument dom = new XmlDocument();
      dom.Load(
      @"E:\NET\test.xml");
      XmlNamespaceManager xnm
      =new XmlNamespaceManager(dom.NameTable);
      xnm.AddNamespace(
      "e", "http://schemas.microsoft.com/winfx/2006/xaml/presentation");
      xnm.AddNamespace(
      "x", "http://schemas.microsoft.com/winfx/2006/xaml");
      xnm.AddNamespace(
      "d", "http://schemas.microsoft.com/expression/blend/2008");
      xnm.AddNamespace(
      "mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
      xnm.AddNamespace(
      "Enginuity", "clr-namespace:Enginuity.Core;assembly=Enginuity.Core");
      XmlNodeList xNodes
      = dom.SelectSingleNode("Enginuity:ViewControl", xnm).ChildNodes;
      Console.WriteLine(xNodes[
      0].NamespaceURI);

        結果如下:

        可以看到,ViewControl的命名空間為最頂及的xmlns,于是寫出下面的程序:

                  XmlDocument dom = new XmlDocument();
      dom.Load(
      @"E:\NET\test.xml");
      XmlNamespaceManager xnm
      =new XmlNamespaceManager(dom.NameTable);
      xnm.AddNamespace(
      "e", "http://schemas.microsoft.com/winfx/2006/xaml/presentation");
      xnm.AddNamespace(
      "x", "http://schemas.microsoft.com/winfx/2006/xaml");
      xnm.AddNamespace(
      "d", "http://schemas.microsoft.com/expression/blend/2008");
      xnm.AddNamespace(
      "mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
      xnm.AddNamespace(
      "Enginuity", "clr-namespace:Enginuity.Core;assembly=Enginuity.Core");
      XmlNode xNode
      = dom.SelectSingleNode("Enginuity:ViewControl/e:Viewbox/e:TextBox[@Name='Text_10']", xnm);
      Console.WriteLine(xNode.Attributes[
      "Value"].Value);

        運行后效果如下:

        期待中的”abc“終于出現了。

        因此,得出一個結論,在用SelectSingleNode方法解析含有多個命名空間的XML文件時,沒有明確標出命名空間的節點,其命名空間為根節點的命名空間。如果還不確定可以從根節點開始,逐層輸出該級節點的命名空間。

        keyword:SelectSingleNode,C#解析XML文件,SelectSingleNode多命名空間,

      版權
      作者:天行健,自強不息

      出處:http://www.rzrgm.cn/durongjian

      本文首發博客園,版權歸作者跟博客園共有。

      轉載必須保留本段聲明,并在頁面顯著位置給出本文鏈接,否則保留追究法律責任的權利。

      posted @ 2011-07-19 22:09  artwl  閱讀(3153)  評論(0)    收藏  舉報

      個人簡介

      var ME = {
      	"name": "土豆/Artwl",
      	"job": "coding",
      	"languages": [
      		"JS", "HTML",
                      "CSS", "jQuery"
      		"MVC",".NET",
      		"設計模式"
      	],
      	"hobby": [
      		"閱讀", "旅游",
      		"音樂", "電影"
      	]
      }
      
      TOP
      主站蜘蛛池模板: 久久综合精品国产一区二区三区无| 久久精品国产亚洲av麻豆不卡 | 91青青草视频在线观看的| 中文字幕乱码一区二区免费| 久久国产精品成人免费| 亚洲精品一区国产| 国模雨珍浓密毛大尺度150p| 亚洲精品麻豆一区二区| 乱女伦露脸对白在线播放| 亚洲天堂精品一区二区| 国厂精品114福利电影免费| 欧美丰满熟妇性xxxx| 国产成人啪精品午夜网站| 国产SUV精品一区二区6| 一 级做人爱全视频在线看| 国产综合视频一区二区三区| 辽阳县| 国产亚洲精品综合一区二区| 亚洲欧美日韩高清一区二区三区 | 狠狠色综合久久狠狠色综合| 国产不卡一区二区四区| 内射老阿姨1区2区3区4区| 亚洲av无码一区二区三区网站| 久久99精品国产自在现线小黄鸭| 秋霞av鲁丝片一区二区| 亚洲日本欧洲二区精品| 国产精品人成视频免费播放| 色偷偷亚洲男人的天堂| 黄色舔女人逼一区二区三区| 玩两个丰满老熟女久久网| 亚洲熟女少妇乱色一区二区| 久久精品国产午夜福利伦理| 国产一区二区三区免费观看| 男女一级国产片免费视频| 十八禁午夜福利免费网站| 国产精品v欧美精品∨日韩| 男人狂桶女人出白浆免费视频| 日韩少妇人妻vs中文字幕| 欧美和黑人xxxx猛交视频| 久久精品道一区二区三区| 毛片av在线尤物一区二区|