請有人可以幫助我解決如何分析以下XML:閱讀和分析XML字符串
<staff name="peter">
<staff name="martin">
<staff name="mike" />
</staff>
<staff name="stuart" />
</staff>
我如何引用在「」值是多少? 基本上我想返回所有員工,他們的名字以特定字母開頭,例如'm'
請有人可以幫助我解決如何分析以下XML:閱讀和分析XML字符串
<staff name="peter">
<staff name="martin">
<staff name="mike" />
</staff>
<staff name="stuart" />
</staff>
我如何引用在「」值是多少? 基本上我想返回所有員工,他們的名字以特定字母開頭,例如'm'
由於您沒有提供任何您已經嘗試過的代碼,我可以指導您一點。
XDocument
,以幫助您解析Descendants
方法(IT連鎖)來查找您的節點/元素First()
得到您想要的數據檢查this回答關於使用XDocument
和Descendants
的一個小例子希望這會有所幫助
說實話,這不是我以前做過的事情,只是我被要求看的東西。我搜索並嘗試了不同的東西,這些東西並不真正給我想要的東西。 –
@ Richard.Gale我已經更新了答案,併爲您提供了一個示例鏈接。 –
使用此引用將您的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);
}
[如何:查找具有特定屬性(XPath的LINQ元素到XML)(C#)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-find-elements-with-a-specific-attribute- xpath-linq-to-xml) –
這看起來非常奇怪的構造XML,它是一個減少ve更大文件的rsion。 – PaulF
它來自一個Api返回 –