C # Xml Node to String - PullRequest
       24

C # Xml Node to String

0 голосов
/ 31 октября 2009

У меня есть документ XML с моими данными, несколько записей для одних и тех же полей узла (StudentID = FirstName, LastName и т. Д.). Как преобразовать узлы в строковые значения для каждого раздела StudentID?

Ответы [ 3 ]

4 голосов
/ 31 октября 2009

Вы мало говорите о том, как выглядит 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 голосов
/ 31 октября 2009

Копировать и редактировать с http://www.csharp -examples.net / xml-node-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());
0 голосов
/ 31 октября 2009

Вы ищете innerText узла (значение внутри тегов, но не данные атрибута тега) или externalXml (который содержит все данные тега)?

Кроме того, вы используете CDATA? Вам нужно сделать еще немного, чтобы правильно извлечь из них данные.

Или, хотите ли вы все сразу - в этом случае вы будете использовать XSLT-преобразование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...