请问怎样可以遍历xml文件读取每个节点的属性值:
例如如下的xml文件,读取出每个节点的属性first-name的值<?xml version="1.0" encoding="gb2312"?>
<players>
<player>
<name first-name="Luis" last-name="Boa Morte"/>
<player-position english="Midfielder" spanish=""/>
</player>
<player>
<name first-name="Matthew" last-name="Upson"/>
<player-position english="Defender" spanish=""/>
</player>
</players>
例如如下的xml文件,读取出每个节点的属性first-name的值<?xml version="1.0" encoding="gb2312"?>
<players>
<player>
<name first-name="Luis" last-name="Boa Morte"/>
<player-position english="Midfielder" spanish=""/>
</player>
<player>
<name first-name="Matthew" last-name="Upson"/>
<player-position english="Defender" spanish=""/>
</player>
</players>
XmlDocument doc = new XmlDocument();
IList NodeValues = new ArrayList();
doc.Load( Server.MapPath("1.xml") );
XmlNode root = doc.DocumentElement;
foreach (XmlNode personElement in root.SelectSingleNode("FAX").ChildNodes)
{
NodeValues.Add(personElement.Attributes["first-name"].Value);
}
return IList;
{
Response.Write("<li>节点类型:" + reader.NodeType + "==<br>");
switch (reader.NodeType)
{
case XmlNodeType.XmlDeclaration:
for (int i = 0; i < reader.AttributeCount; i++)
{
reader.MoveToAttribute(i);
Response.Write("属性:" + reader.Name + "=" + reader.Value + " ");
}
break;
case XmlNodeType.Attribute:
for (int i = 0; i < reader.AttributeCount; i++)
{
reader.MoveToAttribute(i);
Response.Write("属性:" + reader.Name + "=" + reader.Value + " ");
}
break;
case XmlNodeType.CDATA:
Response.Write("CDATA:" + reader.Value + " ");
break;
case XmlNodeType.Element:
Response.Write("节点名称:" + reader.LocalName + "<br>");
for (int i = 0; i < reader.AttributeCount; i++)
{
reader.MoveToAttribute(i);
Response.Write("属性:" + reader.Name + "=" + reader.Value + " ");
}
break;
case XmlNodeType.Comment:
Response.Write("Comment:" + reader.Value);
break;
case XmlNodeType.Whitespace:
Response.Write("Whitespace:" + " ");
break;
case XmlNodeType.ProcessingInstruction:
Response.Write("ProcessingInstruction:" + reader.Value);
break;
case XmlNodeType.Text:
Response.Write("Text:" + reader.Value);
break;
}
}
reader.Close();
doc.Load("..\\..\\XMLFile1.xml"); foreach (XmlNode node in doc.SelectNodes("/players/player/name"))
{
Console.WriteLine(node.Attributes["first-name"].Value.ToString());
}XMLFile1.xml的内容就是你的xml。
XmlReader reader = XmlReader.Create(Server.MapPath("XF.xml")); while (reader.Read())
{ switch (reader.NodeType)
{ case XmlNodeType.Element: for (int i = 0; i < reader.AttributeCount; i++)
{
reader.MoveToAttribute(i);
if (reader.Name == "first-name")
{
Response.Write(reader.Name + "=" + reader.Value + " ");
}
}
break; }
}
reader.Close();
XmlDocument doc = new XmlDocument();
IList NodeValues = new ArrayList();
doc.Load( Server.MapPath("1.xml") );
XmlNode root = doc.DocumentElement;
foreach (XmlNode personElement in root.SelectSingleNode("("/players/player").ChildNodes)
{
NodeValues.Add(personElement.Attributes["first-name"].Value);
}
return IList;
fileName = "images/" + fileName;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("~/FocusList.xml"));
XmlNode root = xmlDoc.SelectSingleNode("Image"); //查找<bookstore>
XmlNodeList xnl = xmlDoc.SelectSingleNode("Image").ChildNodes;
if (xnl != null && xnl.Count > 0)
{
foreach (XmlNode xn in xnl)
{
for (int i = 0; i < xnl.Count - 4;i++ )
{
//删除最靠前的一个节点
xn.ParentNode.RemoveChild(xn);
}
}
}
string str = DateTime.Now.ToString("yyyy:MM:dd hh:mm:ss fff");
XmlElement xe1 = xmlDoc.CreateElement("Focus");//创建一个<Focus>节点
xe1.SetAttribute("ID", "" + modelID + "");//设置该节点ID属性
XmlElement xesub1 = xmlDoc.CreateElement("Title");
xesub1.InnerText = TrueName;//设置文本节点
xe1.AppendChild(xesub1);//添加到<Focus>节点中
XmlElement xesub2 = xmlDoc.CreateElement("Path");
xesub2.InnerText = fileName;
xe1.AppendChild(xesub2);
root.AppendChild(xe1);//添加到<image>节点中
xmlDoc.Save(Server.MapPath("~/FocusList.xml"));
return true;
public ArrayList GetAttribute()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("XMLFile.xml"));
ArrayList al = new ArrayList();
XmlNodeList xmlNL = xmlDoc.SelectNodes("players/player");
foreach (XmlNode xmlN in xmlNL)
{
XmlElement xe = (XmlElement)xmlN.SelectSingleNode("name");
al.Add(xe.GetAttribute("first-name"));
}
return al;
}这个看下,测试没问题。返回的ArrayList
XmlNodeList nodes = xmlDoc.SelectNodes("//@first-name");
foreach (XmlNode node in nodes)
{
//node.Value;
}