请有人帮我解决如何分析以下XML:
<staff name="peter">
<staff name="martin">
<staff name="mike" />
</staff>
<staff name="stuart" />
</staff>
如何引用&#34;&#34;中的值? ? 基本上我想要退回所有名字以特定字母开头的员工,例如&#39; m&#39;
答案 0 :(得分:0)
由于您未提供任何已尝试过的代码,我可以为您提供一些指导。
XDocument
来帮助您解析Descendants
方法(链接它)来定位您的节点/元素First()
之类的内容以获取所需数据查看this答案,了解有关XDocument
和Descendants
用法的小例子
希望这有帮助
答案 1 :(得分:0)
使用此引用将xml文件读入对象。
public static T DeserializeXMLFileToObject<T>(string XmlFilename)
{
T returnObject = default(T);
if (string.IsNullOrEmpty(XmlFilename)) return default(T);
try
{
StreamReader xmlStream = new StreamReader(XmlFilename);
XmlSerializer serializer = new XmlSerializer(typeof(T));
returnObject = (T)serializer.Deserialize(xmlStream);
}
catch (Exception ex)
{
ExceptionLogger.WriteExceptionToConsole(ex, DateTime.Now);
}
return returnObject;
}
您可以使用以下内容调用此方法:
MyObjType MyObj = DeserializeXMLFileToObject<MyObjType>(FilePath);
一旦有了对象:
for(int i = 0; i < StaffMemebers.length; i++)
{
NamesStartingWithLetter(StaffMemebers[i],'A',ref NameList);
}
public void NamesStartingWithLetter(StaffObject staffMember,char letter,ref List<string> NamesFound)
{
if(staffMember.Name[0]==letter)
NamesFound.Add(staffMember.Name);
if(staffMember.staff!=null)
NamesStartingWithLetter(staffMember.staff, letter, ref NamesFound);
}