问题描述
下面的XML文档.请问如何获得属性值.我想获得ABCDE.用C#怎么实现呢.<?xmlversion="1.0"?>-<Documents><DocumentName="A"DocType="B"Content="C:"Executive="D"Table="E"/><DocumentName="F"DocType="G"Content="H:"Executive="I"Table="J"/>.........</Documents>
解决方案
解决方案二:
通用XML读取器usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Xml;usingSystem.Data.SqlClient;publicpartialclassDefault2:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){//声明XmlReader对象,因为从数据读的时候返回的是这个对象,方便两种方式读取XmlReaderreader=null;SqlConnectionconn=null;SqlCommandcmd=null;try{//此变量用判断是否从数据集读还是文件中读boolisrad=true;conn=newSqlConnection("DataSource=.;InitialCatalog=Northwind;IntegratedSecurity=True");conn.Open();cmd=conn.CreateCommand();cmd.CommandText="SELECT[EmployeeID],[City],[Title]FROM[Employees]forxmlauto";//使用三元运算符创建XmlReader对像reader=israd?cmd.ExecuteXmlReader():newXmlTextReader(Request.MapPath("books.xml"));while(reader.Read()){switch(reader.NodeType){//是否是声明caseXmlNodeType.XmlDeclaration:Response.Write(Server.HtmlEncode("<?xmlversion='1.0'?>")+"</br>");break;//是否是指今caseXmlNodeType.ProcessingInstruction:Response.Write(Server.HtmlEncode("<?"+reader.Name+""+reader.Value+"?>")+"</br>");break;//是否是元素caseXmlNodeType.Element:Response.Write(Server.HtmlEncode("<")+reader.Name);//判断某个元素是否具有属性if(reader.HasAttributes){//使用循环读出里面的所有属性for(inti=0;i<reader.AttributeCount;i++){//使用这个方法依次移动属性reader.MoveToAttribute(i);Response.Write(""+reader.Name+"="+reader[i]);}}Response.Write(Server.HtmlEncode(">")+"</br>");break;//是否是文本caseXmlNodeType.Text:Response.Write(reader.Value+"</br>");break;//是否是注释caseXmlNodeType.Comment:Response.Write(Server.HtmlEncode("<!--"+reader.Value+"-->")+"</br>");break;//是否是结束元素caseXmlNodeType.EndElement:Response.Write(Server.HtmlEncode("</"+reader.Name+">")+"</br>");break;}}}catch(Exceptionex){Response.Write(ex.Message);}finally{//关闭读取器if(reader!=null){reader.Close();}//关闭数据库连接if(conn.State==ConnectionState.Open){conn.Close();}}}}
解决方案三:
我昨天也在找这个希望今天能在你的贴中得到答案呵帮顶
解决方案四:
用XmlDocument和XmlElement,XmlDocument加载进来xml文件,用xpath得到想要的XmlElement然后直接。Attribute【】就可以了参考下msdn试试吧
解决方案五:
用XmlDocument类来实现。
解决方案六:
staticvoidMain(string[]args){XmlDocumentdoc=newXmlDocument();doc.Load(@"XML.xml");XmlNodeListlist=doc.GetElementsByTagName("Document");foreach(XmlElementhostinlist){Console.WriteLine(host.Attributes["Name"].Value);Console.WriteLine(host.Attributes["DocType"].Value);Console.WriteLine(host.Attributes["Content"].Value);Console.WriteLine(host.Attributes["Executive"].Value);Console.WriteLine(host.Attributes["Table"].Value);}Console.Read();}
解决方案七:
楼上正解
解决方案八:
5楼正解
解决方案九:
XElementdoc=XElement.Load("../../XMLFile1.xml");foreach(varitemindoc.Elements("Document")){//item.Attribute("Name").Value;//item.Attribute("DocType").Value;foreach(varatinitem.Attributes())Console.WriteLine(at.Value);}
解决方案十:
5楼说的很详细了。呵呵……
解决方案十一:
stringstr="";XmlDocumentxml=newXmlDocument();xml.Load(@"E:XmlOperatorXmlOperatorXMLFile1.xml");XmlNodeListnodelist=xml.SelectSingleNode("Documents").ChildNodes;foreach(XmlNodexlinnodelist){XmlElementxe=(XmlElement)xl;str+=xe.GetAttribute("Name")+xe.GetAttribute("DocType")+xe.GetAttribute("Content")+xe.GetAttribute("Executive")+xe.GetAttribute("table");}Console.Write(str);
解决方案十二:
来晚了
解决方案十三:
Node对象中的attribute属性怎么调用?它是一个数组?