4

我有这个 XML:A 型:

 <?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;  

使用此代码,我阅读了nfeProccancTEcteProc

如何读取 的值versao

4

4 回答 4

3

当您使用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
于 2013-04-02T13:59:32.917 回答
0

请参阅 GetAttribute 方法或 Attributes 属性的文档。那里也有一个例子

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

于 2013-04-02T13:59:52.080 回答
0

尝试这个

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;
于 2013-04-02T14:00:10.607 回答
0

这是代码:

string attribute = primer.Attributes["versao"].Value;
于 2013-04-02T14:01:17.080 回答