我已經創建了一個XML字符串和循環來獲取值。但它沒有進入foreach循環。但在我的其他代碼相同的循環代碼正在工作。 我的代碼是:無法讀取C#中的XML字符串
XML字符串:
<SuggestedReadings>
<Suggestion Text="Customer Centricity" Link="http://wdp.wharton.upenn.edu/book/customer-centricity/?utm_source=Coursera&utm_medium=Web&utm_campaign=custcent" SuggBy="Pete Fader�s" />
<Suggestion Text="Global Brand Power" Link="http://wdp.wharton.upenn.edu/books/global-brand-power/?utm_source=Coursera&utm_medium=Web&utm_campaign=glbrpower" SuggBy="Barbara Kahn�s" />
</SuggestedReadings>
代碼是:
string str = CD.SRList.Replace("&", "&");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(str);
XmlNode SuggestionListNode = xmlDoc.SelectSingleNode("/SuggestedReadings/Suggestion");
foreach (XmlNode node in SuggestionListNode)
{
COURSESUGGESTEDREADING CSR = new COURSESUGGESTEDREADING();
var s = db.COURSESUGGESTEDREADINGS.OrderByDescending(o => o.SRID);
CSR.SRID = (s == null ? 0 : s.FirstOrDefault().SRID) + 1;
CSR.COURSEID = LibId;
CSR.TEXT = node.Attributes.GetNamedItem("Text").Value;
CSR.LINK = node.Attributes.GetNamedItem("Link").Value; ;
CSR.SUGBY = node.Attributes.GetNamedItem("SuggBy").Value; ;
CSR.ACTIVEFLAG = "Y";
CSR.CREATEDBY = CD.CreatedBy;
CSR.CREATEDDATE = DateTime.Now;
db.COURSESUGGESTEDREADINGS.Add(CSR);
}
你打電話給'SelectSingleNode' - 但你想要選擇*多*節點。 (順便說一句,如果可以,我會敦促你轉到LINQ to XML ......這是一個更好的API。) –
@JonSkeet我不知道LINQ to XML。所以更好的發佈一個基於上述代碼的例子。 – Raghubar
如果你有興趣,那麼你可以搜索LINQ to XML教程來幫助你入門。但如果你真的想堅持XmlDocument,然後嘗試改變'SelectSingleNode'調用一個更合適的... –