如何使用 XmlDocument 函数获取索引? C#
How to get index by using XmlDocument functions? C#
我创建了一个 C# Web 窗体应用程序,我想从特定对象获取索引。这就是我现在所拥有的。在这个练习中,我想输入登录名和密码,以便从那个特定的人那里获取信息。允许重复 name/password。我能想到的是从节点获取索引,然后使用 XmlNodeList info = reader.GetElementsByTagName("Info");
和 textBox1.Text = root.GetElementsByTagName("Info")[index].InnerText;
我需要找到那个特定的索引,但我对此感到有点困惑。希望有人能给我一些建议,以及如何做的新想法,谢谢!
private int GetIndex(string loginname, string password)
{
reader = new XmlDocument();
reader.Load(@filepath);
XmlNodeList loginN = reader.GetElementsByTagName("Loginname");
XmlNodeList Pass = reader.GetElementsByTagName("Password");
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<Authentication>
<User xmlns="">
<Loginname>Admin</Loginname>
<Password>232</Password>
<Info>Hello, I'm first person</Info>
</User>
<User xmlns="">
<Loginname>Admin</Loginname>
<Password>4445</Password>
<Info>Hello, I'm second person</Info>
</User>
</Authentication>
如果你想通过给定的 Loginname
和 Password
得到 Info
那么你可以使用 XPath。
string username = "Admin";
string password = "232";
string xPathQuery =
String.Format("Authentication/User[Loginname='{0}' and Password='{1}']",
username, password);
XmlNode node = reader.SelectSingleNode(xPathQuery);
if (node == null)
{
// Incorrect username \ password
} else {
string info = node.SelectSingleNode("User/Info").InnerText;
textBox1.Text = info;
}
请注意,如果有多个 Users
具有相同的用户名和相同的密码 - SelectSingleNode
将选择 第一个 。
像这样:
XmlDocument doc = new XmlDocument();
doc.Load("XmlFile1.xml");
var node = doc.SelectSingleNode("Authentication/User[Loginname='Admin' and Password='4445']");
var childnodes = doc.DocumentElement.ChildNodes;
for (int i = 0; i < childnodes.Count; i++)
{
if (node == childnodes[i])
{
Console.WriteLine("INDEX IS: " + i);
}
}
我创建了一个 C# Web 窗体应用程序,我想从特定对象获取索引。这就是我现在所拥有的。在这个练习中,我想输入登录名和密码,以便从那个特定的人那里获取信息。允许重复 name/password。我能想到的是从节点获取索引,然后使用 XmlNodeList info = reader.GetElementsByTagName("Info");
和 textBox1.Text = root.GetElementsByTagName("Info")[index].InnerText;
我需要找到那个特定的索引,但我对此感到有点困惑。希望有人能给我一些建议,以及如何做的新想法,谢谢!
private int GetIndex(string loginname, string password)
{
reader = new XmlDocument();
reader.Load(@filepath);
XmlNodeList loginN = reader.GetElementsByTagName("Loginname");
XmlNodeList Pass = reader.GetElementsByTagName("Password");
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<Authentication>
<User xmlns="">
<Loginname>Admin</Loginname>
<Password>232</Password>
<Info>Hello, I'm first person</Info>
</User>
<User xmlns="">
<Loginname>Admin</Loginname>
<Password>4445</Password>
<Info>Hello, I'm second person</Info>
</User>
</Authentication>
如果你想通过给定的 Loginname
和 Password
得到 Info
那么你可以使用 XPath。
string username = "Admin";
string password = "232";
string xPathQuery =
String.Format("Authentication/User[Loginname='{0}' and Password='{1}']",
username, password);
XmlNode node = reader.SelectSingleNode(xPathQuery);
if (node == null)
{
// Incorrect username \ password
} else {
string info = node.SelectSingleNode("User/Info").InnerText;
textBox1.Text = info;
}
请注意,如果有多个 Users
具有相同的用户名和相同的密码 - SelectSingleNode
将选择 第一个 。
像这样:
XmlDocument doc = new XmlDocument();
doc.Load("XmlFile1.xml");
var node = doc.SelectSingleNode("Authentication/User[Loginname='Admin' and Password='4445']");
var childnodes = doc.DocumentElement.ChildNodes;
for (int i = 0; i < childnodes.Count; i++)
{
if (node == childnodes[i])
{
Console.WriteLine("INDEX IS: " + i);
}
}