Member 14978771 Ответов: 1

Как получить значение XML-элемента по его имени тега в C#


предположим, у меня есть samplexml, как показано ниже,
<myData>
      <data key="abc" value="11 " />
      <data key="def" value="458" />
      <data key="ghi" value="89" />
      <data key="jkl" value="5" />
      <data key="mno" value="563" />
      <data key="pqr" value="200" />
    </myData>

как я могу получить каждое значение в разных строках
любить:
str1 выглядит следующим образом=11;
str2=458;
.
.
.
также.

как я могу получить значение по его ключу, используя
XmlNode


Что я уже пробовал:

 var root = new XmlDocument();
root.Load(@"samplexml.xml");
XmlNode nodeObj = root.SelectSingleNode("/myData/add[@key=abc]");
string str1= nodeObj.Attributes["value"].Value;

raddevus

Кроме того, это значение является атрибутом _attribute_ тега XML. Я предполагаю, что вы пытаетесь получить значение атрибута, который называется value.
Значение тега будет примерно таким: "название" Берингово море: книга о морской жизни " /title-это то, что находится между тегами. Значение атрибута отличается.

PIEBALDconsult

Попробуйте : "/myData/data[@key='abc']"

1 Ответов

Рейтинг:
2

raddevus

Неужели это так : XmlDocument.Метод GetElementsByTagName (System.Xml) | Microsoft Docs[^]

using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.Load("books.xml");

    //Display all the book titles.
    XmlNodeList elemList = doc.GetElementsByTagName("data");
    for (int i=0; i < elemList.Count; i++)
    {
      Console.WriteLine(elemList[i].InnerXml);
    }
  }
}