从根节点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
, cancTE
和cteProc
。
如何读取versao
的值
当你正在使用 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;