亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

多命名空間的 Xml 文檔解析

2019-11-17 03:17:45
字體:
來源:轉載
供稿:網友

多命名空間的 xml 文檔解析

原標題:《C#中用SelectSingleNode方法解析帶有多個命名空間的XML文件》

下文是對C#對XML的具體操作

如何完成.Net下XML文檔的讀寫操作

C#操作xml SelectNodes,SelectSingleNode總是返回NULL 與 xPath 介紹

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

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

XML文件如下:

 1 <?xml version="1.0" encoding="utf-8" ?> 2 <Enginuity:ViewControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/

這里小小提示一下,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多命名空間,

作者:Work Hard Work Smart出處:http://www.49028c.com/linlf03/歡迎任何形式的轉載,未經作者同意,請保留此段聲明!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久频这里精品99香蕉| 国产福利精品在线| 日韩精品久久久久久久玫瑰园| 欧美激情极品视频| 欧美成人一区二区三区电影| 另类视频在线观看| 欧美国产日韩二区| 深夜成人在线观看| 亚洲精品国产品国语在线| 日韩在线观看免费网站| 欧美精品在线免费观看| 欧美在线中文字幕| 不用播放器成人网| 国产精品第一视频| 狠狠躁夜夜躁人人爽天天天天97| 97视频免费看| 国产精品免费视频久久久| 国内外成人免费激情在线视频网站| www高清在线视频日韩欧美| 98精品国产高清在线xxxx天堂| 日本免费在线精品| 国产男人精品视频| 亚洲性线免费观看视频成熟| 91香蕉嫩草神马影院在线观看| 久久久亚洲天堂| 欧美做爰性生交视频| 成人黄色短视频在线观看| 国产欧美一区二区三区在线| 欧美在线播放视频| 全亚洲最色的网站在线观看| 中文国产成人精品| 亚洲美女免费精品视频在线观看| 亚洲欧美综合另类中字| 海角国产乱辈乱精品视频| 久久久国产影院| 国产精品美女www爽爽爽视频| 国产精品日日做人人爱| 91精品久久久久久久久久另类| 久久视频这里只有精品| 久久久久久久久综合| 亚州成人av在线| 久久69精品久久久久久国产越南| 日韩美女在线观看一区| 狠狠久久五月精品中文字幕| 日韩国产欧美精品一区二区三区| 亚洲午夜女主播在线直播| 色综合导航网站| 亚洲激情视频网站| 国产精品电影网站| 欧美激情在线狂野欧美精品| 性色av一区二区三区| 国产精品久久久久久久久久久不卡| 国产视频综合在线| 91精品国产91久久久久久最新| 日韩免费视频在线观看| 国产精品ⅴa在线观看h| 亚洲国产欧美日韩精品| 国产精品爱啪在线线免费观看| 久久91超碰青草是什么| 欧美视频在线免费| 亚洲国产一区自拍| 国产精品免费看久久久香蕉| 日韩电影免费观看中文字幕| 国产女人18毛片水18精品| 国产极品精品在线观看| 日韩欧美999| 午夜精品久久久久久久久久久久久| 国产精品大片wwwwww| 成人福利在线视频| 亚洲精品乱码久久久久久金桔影视| 国产精品一区二区性色av| 欧美丰满片xxx777| 国产成一区二区| 亚洲精品一区二三区不卡| 国产99久久精品一区二区永久免费| 欧美多人爱爱视频网站| 亚洲大尺度美女在线| 久久久中精品2020中文| 久久理论片午夜琪琪电影网| 麻豆成人在线看| 久久久免费观看视频| 日韩av最新在线观看| 成人免费视频97| 中文字幕久热精品视频在线| 亚洲码在线观看| 日韩精品欧美国产精品忘忧草| 成人妇女淫片aaaa视频| 欧美俄罗斯性视频| 亚洲精品日韩久久久| 日日骚久久av| 久久精品2019中文字幕| 国产日韩在线亚洲字幕中文| 国产精品亚洲аv天堂网| 91久久久久久久久久久| 欧美性xxxx极品hd欧美风情| 在线视频欧美日韩| 日本中文字幕久久看| 91高清视频免费观看| 久久男人av资源网站| 国产色婷婷国产综合在线理论片a| 亚洲精品国产拍免费91在线| 国产精品欧美在线| 国产日韩欧美黄色| 亚洲男人天堂网站| 国产主播在线一区| 亚洲天堂av高清| 热久久视久久精品18亚洲精品| 久久亚洲国产成人| 91亚洲精品视频| 久久久综合av| 欧美精品激情blacked18| 中文字幕一区日韩电影| 国产成人精品999| xxx一区二区| 成人在线视频福利| 在线观看91久久久久久| 奇门遁甲1982国语版免费观看高清| 日韩av一区在线观看| 国产精品99久久久久久www| 91欧美精品午夜性色福利在线| 国产日韩欧美在线视频观看| 久久人人爽人人| 欧美男插女视频| 亚洲第一福利在线观看| 亚洲第一av在线| 91免费版网站入口| 欧美性xxxx极品高清hd直播| 日产精品久久久一区二区福利| 亚洲第一页自拍| 福利微拍一区二区| 亚洲三级av在线| 国产免费久久av| 成人xvideos免费视频| 久久久久久12| 亚洲国产精品成人精品| 日韩精品免费电影| 成人免费在线视频网址| 555www成人网| 韩曰欧美视频免费观看| 韩剧1988在线观看免费完整版| 色婷婷av一区二区三区在线观看| 国产精品一区二区女厕厕| 久色乳综合思思在线视频| 精品二区三区线观看| 国产精品一区二区三区成人| 久久精品国产v日韩v亚洲| 成人久久18免费网站图片| 亚洲xxxxx性| 日韩av在线免费播放| 亚洲国产精久久久久久久| 欧美日韩在线第一页| 色综合视频网站| 国产精品久久久久久久久久久久久| 97视频在线观看成人| 亚洲资源在线看| 波霸ol色综合久久| 欧美日韩国产中文字幕| 久久夜色精品亚洲噜噜国产mv| 国产精品欧美一区二区三区奶水| 热99在线视频| 亚洲国产高清福利视频| 欧美日韩国产一中文字不卡| 亚洲成人av资源网| 一个人www欧美|