从根节点XML读取值

本文关键字:读取 XML 根节点 | 更新日期: 2023-09-27 18:07:08

我有这个XML:类型:

 <?xml version="1.0" encoding="UTF-8"?>
 <nfeProc versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
 </nfeProc>

B型:

<?xml version="1.0" encoding="UTF-8"?>
<cancCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="1.04"> 
</cancCTe>
类型C:

<?xml version="1.0" encoding="UTF-8"?>
<cteProc xmlns="http://www.portalfiscal.inf.br/cte" versao="1.04">
</cteProc> 

我已经读取了根节点:

 XmlDocument xmlDoc = new XmlDocument();
 xmlDoc.Load(nomear);
 XmlNodeList ml = xmlDoc.GetElementsByTagName("*");
 XmlNode primer = xmlDoc.DocumentElement;
 exti = primer.Name;  

用这个代码我读取nfeProc, cancTEcteProc

如何读取versao的值

从根节点XML读取值

当你正在使用 c# 3.5或更高版本时,你可以利用LINQ to XML(你的标签说你正在使用c# 4.0,所以它当然适用)

//your xml contents. I've just escaped " symbols, so I can use it as literal
string str = "<?xml version='"1.0'" encoding='"UTF-8'"?>'r'n "+
                 "<nfeProc versao='"2.00'" xmlns='"http://www" +
                 ".portalfiscal.inf.br/nfe'">'r'n </nfeProc>";
var xml = XDocument.Parse(str);
Console.WriteLine(xml.Root.Attribute("versao").Value);

打印:

2.00

参见文档中的GetAttribute方法或Attributes属性。这里还有一个例子

http://msdn.microsoft.com/en-us/library/system.xml.xmlelement.getattribute (v = vs.71) . aspxhttp://msdn.microsoft.com/en-us/library/system.xml.xmlelement.attributes (v = vs.71) . aspx

这是代码:

string attribute = primer.Attributes["versao"].Value;

试试这个

primer.Attributes["versao"].Value

你可能也会发现这很有帮助:

System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Load("PATH TO YOUR .XML");
string value = doc.Element("nfeProc").Attribute("versao").Value;