C#中取xml的值

C#中取xml的值,第1张

这里我用linq

to

xml的方式写吧,个人在读取xml时候比较喜欢用这个

XElement

root

=

XElementload(xmlFile);

//获取根节点

startporcdata

var

rootChild

=

from

x

in

rootElements()

select

x

;

//获取根节点下的子节点集合也就是head

//因为根节点只有一个子节点head所以取集合第一个就可以了,这里是方便,实际中判断下比较好

var

childs

=

from

x

in

rootchildToList<XElement>()[0]

Elements()

select

x

;

//获取到了head下所有子节点集合了,现在来获取每个节点属性集合

foreach(XElement

xe

in

childs

)

{

var

attrs

=

from

x

in

xeAttributes()

select

x

这里判断下元素名和属性名称然后获取值就可以了

}

====

PS: 以上代码仅仅说明,切莫直接使用,而且真正过程是可以简化的,上面已经是最复杂的了。

第一种:使用XPath

XML的路径我配置在webconfig 的appSettings节点下

Hashtable ht = new Hashtable(); 

string orgCodePath = ServerMapPath(ConfigurationSettingsAppSettings["orgCodePath"]);

//string orgCodePath = ServerMapPath("//template/home/orgCodexml");

XmlDocument xmldoc = new XmlDocument();

xmldocLoad(orgCodePath);

//获取节点列表 

XmlNodeList topM = xmldocSelectNodes("//Organization"); 

foreach (XmlElement element in topM) 

 string id = elementGetElementsByTagName("ID")[0]InnerText; 

 string domainName = elementGetElementsByTagName("DomainName")[0]InnerText; 

 htAdd(id, domainName); 

}

第二种:遍历式读取XML

//打开某文件(假设webconfig在根目录中) 

string filename=ServerMapPath("/") + @"WebApplication1/webconfig"; 

XmlDocument xmldoc= new XmlDocument(); 

xmldocLoad(filename); 

//得到顶层节点列表 

XmlNodeList topM=xmldocDocumentElementChildNodes; 

foreach(XmlElement element in topM) 

   if(elementNameToLower()=="appsettings") 

   { 

   //得到该节点的子节点 

   XmlNodeList nodelist=elementChildNodes; 

   if ( nodelistCount >0 ) 

   { 

    //DropDownList1ItemsClear(); 

    foreach(XmlElement el in nodelist)//读元素值 

    { 

    //DropDownList1ItemsAdd(elAttributes["key"]InnerXml); 

    //thisTextBox2Text=elAttributes["key"]InnerText; 

    thisTextBox2Text=elAttributes["key"]Value; 

    thisLabel1Text=elAttributes["value"]Value; 

      //同样在这里可以修改元素值,在后面save。 

     // elAttributes["value"]Value=thisTextBox2Text; 

    } 

   } 

   } 

xmldocSave(filename);

读取xml任意节点

XmlNode node=docSelectSingleNode("/configuration/appSettings/add"); //按照节点目录查询

if(node!=null)

   string k=nodeAttributes["key"]Value; 

   string v=nodeAttributes["value"]Value; 

   node=null; 

XmlNode node=docSelectSingleNode("/configuration/appSettings/add"); 

if(node!=null) 

{

   XmlNodeReader nr=new XmlNodeReader(node); 

   nrMoveToContent(); 

  //检查当前节点是否是内容节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。 

   nrMoveToAttribute("value"); 

   string s=nrValue; 

   node=null; 

}

以上就是关于C#中取xml的值全部的内容,包括:C#中取xml的值、C#中如何读取XML内具体 某条数据 的信息、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9400285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存