c#关于xml读取的问题(web)

qiujg 2007-02-01 10:21:38
我有个关于联系人的2.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<linkname>
<姓名>张三</姓名>
<性别>男</性别>
<年龄>30</年龄>
<邮箱>zhangsan@126.com</邮箱>
</linkname>

现在想把里面的内容读出来显示为
姓名:张三
性别:男
年龄:30
邮箱:zhangsan@126.com

怎么做呀,而且这个linkname的属性可能会变化,比如有的联系人还会有电话等等。
...全文
406 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyped 2007-02-01
  • 打赏
  • 举报
回复
楼主一个联系人对应一个xml文件啊?
你可以把所有的属性都加上,比如电话等

最好读到一个datatable中,多规则啊
honkerhero 2007-02-01
  • 打赏
  • 举报
回复
最快的方法XMLREADER
string configPath = System.IO.Path.GetFullPath(@"Win.config");
System.Xml.XmlTextReader ConfigXTR = new System.Xml.XmlTextReader(configPath);

while ( ConfigXTR.Read() )
{
//定位到配置节点
if (ConfigXTR.NodeType == XmlNodeType.Element && ConfigXTR.Name == "appSettings")
{
while (ConfigXTR.Read())
{
//结束时退出读取
if (ConfigXTR.NodeType == XmlNodeType.EndElement && ConfigXTR.Name == "appSettings")
{
break;
}

if (ConfigXTR.NodeType == XmlNodeType.Element && ConfigXTR.Name == "add")
{
//定位到属性
ConfigXTR.MoveToAttribute("key");
switch ( ConfigXTR.Value )
{
case "DataBaseName":
{
ConfigXTR.MoveToAttribute("value");
m_connType.DataBaseName = ConfigXTR.Value;
break;
}
case "UserID":
{
ConfigXTR.MoveToAttribute("value");
m_connType.UserID = ConfigXTR.Value;
break;
}
case "Password":
{
ConfigXTR.MoveToAttribute("value");
m_connType.Password = ConfigXTR.Value;
break;
}
case "IntegratedSecurity":
{
ConfigXTR.MoveToAttribute("value");

if ( ConfigXTR.Value.ToUpper() == "FALSE" )
m_connType.IntegratedSecurity = false;
else
m_connType.IntegratedSecurity = true;
break;
}
case "ServerName":
{
ConfigXTR.MoveToAttribute("value");
m_connType.ServerName = ConfigXTR.Value;
break;
}
case "ConnectTimeout":
{
ConfigXTR.MoveToAttribute("value");
m_connType.ConnectTimeout = Convert.ToInt32(ConfigXTR.Value);
break;
}
default:
break;
}
}
}
}
}
}
自己理解,修改一下吧
sdl2005lyx 2007-02-01
  • 打赏
  • 举报
回复
对,跟你的节点有多少个元素没有关系,你遍历就行了:

XmlDocument doc = new XmlDocument();
doc.Load("test1.xml");

XmlNodeList list = doc.SelectNodes("//linkname");//得到所有的linkname节点

foreach (XmlNode node in list)
{//遍历所有的linkname节点
foreach (XmlNode subNode in node.ChildNodes)
{//遍历每个linkname节点的字节点
string strName = subNode.Name; //节点名
string strValue = subNode.InnerText; //节点值
}
}
jcyluck 2007-02-01
  • 打赏
  • 举报
回复
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("2.xml");
XmlNode root=xmlDoc.SelectSingleNode("linkname");
foreach (XmlNode n in xnl)
{
textbox1.text+=xnl.name;
}

Ki1381 2007-02-01
  • 打赏
  • 举报
回复
XmlDocument doc = new XmlDocument();
doc.Load(@"c:\t.xml");

XmlNodeList xnl = doc.SelectNodes("/linkname/*");

foreach (XmlNode n in xnl)
{
MessageBox.Show(n.Name + ":" + n.InnerText);
}
mapserver 2007-02-01
  • 打赏
  • 举报
回复
把XML读入XmlDocumnet,遍历XmlDocument的节点,
显示节点名称:显示节点的值

linkname里节点的个数变化没有关系。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧