我有以下(示例)我的xml文档:
<Students>
<Student ID = *GUID NUMBER*>
<FullName>John Smith</FullName>
<Address>123 Fake St</Address>
</Student>
<Student ID = *GUID NUMBER*>
<FullName>Henry Doe</FullName>
<Address>321 Whatever Lane</Address>
每个人都有更多数据。我想要做的是在ac#windows app表单中,单击一个按钮,搜索用户选择的'FullName'字段,并获取该用户条目的ID,以便我可以使用该ID填写形成。 IE:用户选择“John Smith”并按“Go”。这将使用John Smith的数据填充表单的字段。 所以我在考虑两件事,使用'SelectSingleNode'?获取FullName节点的文本,然后以某种方式获取用户ID? 我的其余代码使用的是XmlDocument调用。
这是我到目前为止所做的:
string FullName = StudentSelectStudentComboBox.Text;
XmlDocument fullnamefinderdoc = new XmlDocument();
fullnamefinderdoc.Load("Data.xml");
XmlNode node = fullnamefinderdoc.SelectSingleNode("//[FullName='FullName']");
if (node != null)
{ string studentID = node.Attributes["ID"].Value; }
MessageBox.Show("Student ID is: " + studentID);
答案 0 :(得分:2)
这个怎么样:
public string FindStudentID(string fullName)
{
string result = string.Empty;
XmlDocument doc = new XmlDocument();
doc.Load(@"your-xml-file-name.xml");
string xpath = string.Format("/Students/Student[FullName='{0}']", fullName);
XmlNode node = doc.SelectSingleNode(xpath);
if (node != null) // we found John Smith
{
result = node.Attributes["ID"].Value;
}
return result;
}
应该找到“fullName”的学生节点,并提取“ID”属性的字符串表示,然后可以将其转换为C#中的GUID。
从您的代码中,致电是:
private void StudentGoButton_Click(object sender, EventArgs e)
{
string myStudentID = FindStudentID(StudentSelectStudentComboBox.Text);
}
马克