gpt4 book ai didi

c# - XML/C# : Read content if only if attribute is correct

转载 作者:数据小太阳 更新时间:2023-10-29 02:55:18 27 4
gpt4 key购买 nike

我有一个如下所示的 XML 文件,我正在尝试读取 Name 标签的内容,前提是 Record 标签的属性是我想要的。 (下面继续代码)

XML 文件是:

<?xml version="1.0" encoding="utf-8" ?>
<Database>
<Record Number="1">
<Name>John Doe</Name>
<Position>1</Position>
<HoursWorked>290</HoursWorked>
<LastMonthChecked>0310</LastMonthChecked>
</Record>
<Record Number="2">
<Name>Jane Doe</Name>
<Position>1</Position>
<HoursWorked>251</HoursWorked>
<LastMonthChecked>0310</LastMonthChecked>
</Record>
</Database>

这是我目前的 C# 代码:

 public static string GetName(int EmployeeNumber)
{
XmlTextReader DataReader = new XmlTextReader("Database.xml");
DataReader.MoveToContent();
while (DataReader.Read())
{
if (DataReader.NodeType == XmlNodeType.Element
&& DataReader.HasAttributes && DataReader.Name == "Record")
{
DataReader.MoveToAttribute(EmployeeNumber);
DataReader.MoveToContent();
if (DataReader.NodeType == XmlNodeType.Element
&& DataReader.Name == "Name")
{
return DataReader.ReadContentAsString();
}
}
}
}

例如,如果将 2 传递给函数,我希望它返回字符串 "Jane Doe"。我是 XML 解析的新手,所以任何帮助将不胜感激。

谢谢。

最佳答案

为此使用 XPath。

查看这篇文章:http://www.developer.com/xml/article.php/3383961/NET-and-XML-XPath-Queries.htm .它有一个与您的情况非常相似的示例。

关于c# - XML/C# : Read content if only if attribute is correct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2452948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com