在线捏脸网站需要多少钱,地方门户网站赚钱吗,wordpress wiki 皮肤,做网站需要买域名之前文章讲述了使用c# xpath如何操作xml文件#xff0c;在实际开发项目中#xff0c;遇到的很多xml文件都是带有命名空间的#xff0c;如果还是用之前的代码获取#xff0c;那将获取到null。 本文讲解操作代码有命名空间的Xml文件#xff0c;以及多个命名空间的xml。
在实际开发项目中遇到的很多xml文件都是带有命名空间的如果还是用之前的代码获取那将获取到null。 本文讲解操作代码有命名空间的Xml文件以及多个命名空间的xml。
?xml version1.0 encodingutf-8 ?
bookstore xmlnshttp://example.books.combook genreautobiography publicationdate1991 ISBN1-861003-11-0titleThe Autobiography of Benjamin Franklin/titleauthorfirst-nameBenjamin/first-namelast-nameFranklin/last-name/authorprice8.99/price/booksp:book genrenovel publicationdate1967 ISBN0-201-63361-2 xmlns:sphttp://example.book.comtitleThe Confidence Man/titleauthorfirst-nameHerman/first-namelast-nameMelville/last-name/authorprice11.99/price/sp:bookbook genrephilosophy publicationdate1991 ISBN1-861001-57-6titleThe Gorgias/titleauthornamePlato/name/authorprice9.99/price/book
/bookstore如用之前代码
XmlDocument xmldoc new XmlDocument(); xmldoc.Load(“Books.xml”); XmlNodeList nodelist xml.SelectNodes(“/bookstore/book”); nodelist返回的值永远是null原因是如果XPath表达式没有加前缀如a:b中前缀是a那么所查询节点注意属性也可以是节点的命名空间URI就应该是空值也是默认值否则XPath不会返回结果。 现在要想获取到节点则需要添加命名空间具体代码如下 XmlDocument xmldoc new XmlDocument();xmldoc.Load(Books.xml);XmlNamespaceManager xmlns new XmlNamespaceManager(xmldoc.NameTable);xmlns.AddNamespace(sd, http://example.books.com);//默认的命名空间也要添加 前缀xmlns.AddNamespace(sp, http://example.book.com);XmlNodeList nodelist xmldoc.SelectNodes(/sd:bookstore/sp:book, xmlns);分析
xmlDocument.SelectNodes(“a:Root/a:News/a:New”,命名空间管理) 命名空间管理需要绑定 xmlDocument.NameTable NameTable是一个链表结构 存储唯一的属性(包含前缀)和元素(包含前缀)名字
如果不使用xPath来取值使用XmlNodeList nodelist xmldoc.GetElementsByTagName(“New”); 也可以取到值。