public bool CreateNode(XmlNode Node)
{
UserInFo User = new UserInFo();
foreach (XmlNode Read in Node)
{
if (Read.Name == "User_ID")
{
User.U_ID = Read.InnerText;
}
if (Read.Name == "User_Name")
{
User.U_Name = Read.InnerText;
}
if (Read.Name == "Password")
{
User.U_Password = Read.InnerText;
}
if (Read.Name == "TokenPIN")
{
User.U_TokenPIN = Read.InnerText;
}
if (Read.Name == "FullName")
{
User.U_FullName = Read.InnerText;
}
}
if (User.U_Name != null && User.U_Password != null && User.U_TokenPIN != null)
{
User_Array.Add(User);
} return true;
}按我现在的取法 假设我区 ID 为 001 的对象值
<User>
<User_ID>001</User_ID>
<User_Name>aaa </User_Name>
<Password>n</Password>
<TokenPIN>5566</TokenPIN>
<FullName>ailsa</FullName>
</User>
那么 要循环 5次 才能取完
这样查找效率很低,能不能一下就能取出XML文件中 某个对象的所有值 。
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<UserFileNurse>
<User>
<User_ID>001</User_ID>
<User_Name>aaa </User_Name>
<Password>n</Password>
<TokenPIN>5566</TokenPIN>
<FullName>ailsa</FullName>
</User>
<User>
<User_ID>002</User_ID>
<User_Name>bbb</User_Name>
<Password>a</Password>
<TokenPIN>5986</TokenPIN>
<FullName>amanda</FullName>
</User>
<User>
<User_ID>003</User_ID>
<User_Name>ccc</User_Name>
<Password>b</Password>
<TokenPIN>2366</TokenPIN>
<FullName>crystal</FullName>
</User>
</UserFileNurse>
{
UserInFo User = new UserInFo();
foreach (XmlNode Read in Node)
{
if (Read.Name == "User_ID")
{
User.U_ID = Read.InnerText;
}
if (Read.Name == "User_Name")
{
User.U_Name = Read.InnerText;
}
if (Read.Name == "Password")
{
User.U_Password = Read.InnerText;
}
if (Read.Name == "TokenPIN")
{
User.U_TokenPIN = Read.InnerText;
}
if (Read.Name == "FullName")
{
User.U_FullName = Read.InnerText;
}
}
if (User.U_Name != null && User.U_Password != null && User.U_TokenPIN != null)
{
User_Array.Add(User);
} return true;
}按我现在的取法 假设我区 ID 为 001 的对象值
<User>
<User_ID>001</User_ID>
<User_Name>aaa </User_Name>
<Password>n</Password>
<TokenPIN>5566</TokenPIN>
<FullName>ailsa</FullName>
</User>
那么 要循环 5次 才能取完
这样查找效率很低,能不能一下就能取出XML文件中 某个对象的所有值 。
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<UserFileNurse>
<User>
<User_ID>001</User_ID>
<User_Name>aaa </User_Name>
<Password>n</Password>
<TokenPIN>5566</TokenPIN>
<FullName>ailsa</FullName>
</User>
<User>
<User_ID>002</User_ID>
<User_Name>bbb</User_Name>
<Password>a</Password>
<TokenPIN>5986</TokenPIN>
<FullName>amanda</FullName>
</User>
<User>
<User_ID>003</User_ID>
<User_Name>ccc</User_Name>
<Password>b</Password>
<TokenPIN>2366</TokenPIN>
<FullName>crystal</FullName>
</User>
</UserFileNurse>
解决方案 »
- c# repeater checkbox点击 子repeater checkbox全选
- c# 如何获取屏幕上一点的颜色
- 我通过imagelist控件将图片添加到listview中,现在想通过选择中图片的时候知道图片的路径
- datagridview中两个表列数的问题
- B2B网站的会员进销存功能的数据库设计问题?
- 高手大人。C# winform 数据同步问题
- 100分请了不够又加,;C# 的大文件上传与存入数据库问题!
- 我每张图是90*56大小一至,按一定顺序排,每排排9张图,排两排,不重叠.在c#里要怎么写啊
- 没分了...求解正则表达式的问题...
- HyperLinkField传值
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 httpwebrequest如何获取目标网站的cookie
- 虚拟服务器支持水晶报表吗?
XmlDocument doc = new XmlDocument();
doc.loadxml();
XmlNode n ;
n = doc.DocumentElement.SelectSingleNode("//User[UserID='User_ID']");
User.U_ID = n.ChildNodes[0].InnerText;
class User
{
User_ID;
User_Name;
Password;
TokenPIN;
FullName;
}
......
PatientManager My_Node = new PatientManager();
XmlDocument Xmldoc = new XmlDocument();
Xmldoc.Load(FilePath);
XmlNodeList Nodelist = Xmldoc.DocumentElement.ChildNodes;
//XmlNodeList Nodelist = Xmldoc.SelectSingleNode("Group").ChildNodes;
foreach (XmlNode XNode in Nodelist)
{
My_Node.CreateNode(XNode); //这里调用下面的方法 点一次创建个对象并赋值给对象里的变量。 然后到下面的方法里又调用了 好多次 感觉好麻烦呀 就是想 一下取到所有值。
public bool CreateNode(XmlNode Node)
{
UserInFo User = new UserInFo();
foreach (XmlNode Read in Node)
{
if (Read.Name == "User_ID")
{
User.U_ID = Read.InnerText;
}
if (Read.Name == "User_Name")
{
User.U_Name = Read.InnerText;
}
if (Read.Name == "Password")
{
User.U_Password = Read.InnerText;
}
if (Read.Name == "TokenPIN")
{
User.U_TokenPIN = Read.InnerText;
}
if (Read.Name == "FullName")
{
User.U_FullName = Read.InnerText;
}
}
if (User.U_Name != null && User.U_Password != null && User.U_TokenPIN != null)
{
User_Array.Add(User);
} return true;
} }
{
[XmlElement("User")]
public User[] Users;
}
public class User
{
public string User_ID;
public string User_Name;
public string Password;
public string TokenPIN;
public string FullName;
}XmlSerializer xs = new XmlSerializer(typeof(UserFileNurse));
UserFileNurse uf = xs.Deserialize(File.OpenRead("test.xml")) as UserFileNurse;
{
foreach (XmlNode Read in Node)
你这个写法有问题,要么为CreateNode(xmlnodlist nodes),然后才能用Foreach
PatientManager My_Node = new PatientManager();
XmlDocument Xmldoc = new XmlDocument();
Xmldoc.Load(FilePath);
XmlNodeList Nodelist = Xmldoc.DocumentElement.ChildNodes;
//XmlNodeList Nodelist = Xmldoc.SelectSingleNode("Group").ChildNodes;
foreach (XmlNode XNode in Nodelist)
{
My_Node.CreateNode(XNode);
}
调用了class PatientManager 的public bool CreateNode(XmlNode Node) 方法public bool CreateNode(XmlNode Node)
{
PatientInFo Patient = new PatientInFo(); foreach (XmlNode Read in Node)
{
if (Read.Name == "ID")
{
Patient.ID = Read.InnerText;
}
if (Read.Name == "Last_Name")
{
Patient.Last_Name = Read.InnerText;
}
.
.
.
.
}
}
我是这样调用去查找 并得到值的 哎~~~就想一下取出所有值
PatientManager My_Node = new PatientManager();
XmlDocument Xmldoc = new XmlDocument();
Xmldoc.Load(FilePath);
XmlNodeList Nodelist = Xmldoc.DocumentElement.ChildNodes;
//XmlNodeList Nodelist = Xmldoc.SelectNodes("//User");
foreach (XmlNode XNode in Nodelist)
{
My_Node.CreateNode(XNode);
}public bool CreateNode(XmlNode Node)
{
UserInFo User = new UserInFo();
User.U_ID = XNode.ChildNodes[0].InnerText;
User.U_Name = XNode.ChildNodes[1].InnerText;
User.U_Password = XNode.ChildNodes[2].InnerText;
User.U_TokenPIN = XNode.ChildNodes[3].InnerText;
User.U_FullName = XNode.ChildNodes[4].InnerText;
if (User.U_Name != null && User.U_Password != null && User.U_TokenPIN != null)
{
User_Array.Add(User);
} return true;
}
PatientManager My_Node = new PatientManager();
XmlDocument Xmldoc = new XmlDocument();
Xmldoc.Load(FilePath);
XmlNodeList Nodelist = Xmldoc.DocumentElement.SelectNodes("//User");
foreach (XmlNode XNode in Nodelist)
{
My_Node.CreateNode(XNode);
}
//为什么不用xpath呢
public bool CreateNode(XmlNode Node)
{
UserInFo User = new UserInFo();
User.U_ID = XNode.ChildNodes[0].InnerText;
User.U_Name = XNode.ChildNodes[1].InnerText;
User.U_Password = XNode.ChildNodes[2].InnerText;
User.U_TokenPIN = XNode.ChildNodes[3].InnerText;
User.U_FullName = XNode.ChildNodes[4].InnerText;
if (User.U_Name != null && User.U_Password != null && User.U_TokenPIN != null)
{
User_Array.Add(User);
} return true;
}
UserFileNurse uf = xs.Deserialize(File.OpenRead("test.xml")) as UserFileNurse;
string s=uf.Users[0].User_ID;
string s2=uf.Users[1].Name;
......
会了吧?