我有一個XML文檔,其中包含我的數據,同一節點字段(StudentID = FirstName,LastName等)的多個條目。如何將節點轉換爲每個StudentID部分的字符串值?C#Xml節點到字符串
0
A
回答
4
編輯你不說太多關於什麼XML是什麼樣子。但它可能去是這樣的:
string xml = "<nodes><studentid><firstname>Name</firstname><lastname>last</lastname></studentid></nodes>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
foreach (XmlNode node in doc.SelectNodes("//studentid"))
{
string first = node["firstname"].InnerText;
string last = node["lastname"].InnerText;
}
如果數據是屬性使用的線沿線的東西:
string first = node.Attributes["firstname"].Value;
你也可以看看LINQ對XML的,如果你有一個模式。
0
您正在尋找節點的innerText(標籤內的值,而不是標籤屬性數據)還是outerXml(它具有所有標籤數據)?
此外,你使用CDATA?還有一點你需要做的是正確地從數據中提取數據。或者,你是否希望立即全部使用 - 在這種情況下,您需要使用XSLT轉換。
+0
基本上這個:http://www.csharp-examples.net/xml-nodes-by-name/但是把代碼放在一個MessageBox.Show中,我使用一個Win App窗體和一個按鈕... – 2009-10-30 23:55:33
0
複製和http://www.csharp-examples.net/xml-nodes-by-name/
//on button click before the following:
XmlDocument xml = new XmlDocument();
xml.LoadXml(myXmlString); // suppose that myXmlString contains "<Names>...</Names>"
XmlNodeList xnList = xml.SelectNodes("/Names/Name");
StringBuilder sb = new StringBuilder();
string entry = "Name: {0} {1}\r\n";
foreach (XmlNode xn in xnList)
{
string firstName = xn["FirstName"].InnerText;
string lastName = xn["LastName"].InnerText;
sb.AppendFormat(entry, firstName, lastName);
}
MessageBox.Show(sb.ToString());
你能舉出當前的XML和你想要的字符串的例子嗎? – 2009-10-30 23:51:38
這是我到目前爲止: XmlDocument xmlReturnDoc = new XmlDocument(); xmlReturnDoc.Load(「Data.xml」); XmlNodeList xnList = xmlReturnDoc.SelectNodes(「/ Students/Student」); foreach(xmlList中的XmlNode xn) { string firstName = xn [「FirstName」]。InnerText; string lastName = xn [「LastName」]。InnerText; MessageBox.Show(「Name is:」+ firstName +「」+ lastName); } 這可以工作,但會依次顯示消息框中的條目的名字和姓氏。有沒有辦法將條目分成字符串? – 2009-10-31 00:09:15