Использование XDocument для чтения корневого элемента из XML с использованием C # не показывает корневой элемент - PullRequest
0 голосов
/ 28 сентября 2018

Я новичок в программировании на C # и пытаюсь обновить файл XML с помощью C #.Здесь, когда я пытаюсь получить корневой элемент с помощью XDocument, он показывает полный скрипт в файле.

Ниже приведено объяснение моего кода:

У меня есть функция ниже, и она читаетпуть к файлу из аргументов командной строки.

private XDocument doc;

public void Update(string filepath)
{
   string filename = Path.GetFileName(filepath);

   doc = xDocument.Load(filepath);

   XElement rootelement = doc.Root;

}

В переменную filepath мы берем путь "E: \ BuilderTest \ COMMON.wxs"

Затем мы загружаем файлиспользуя XDocument.

Но когда мы пытаемся получить корневой элемент из файла, он не показывает корневой элемент.Вместо этого он показывает полные данные в файле.

Но когда я использую XmlDocument () вместо XDocument (), я вижу только корневой элемент.

Ниже приведенкод с использованием XmlDocument ():

private XmlDocument doc;

public void Update(string filepath)
{
   string filename = Path.GetFileName(filepath);

   doc = new XmlDocument();
   doc.Load(filepath);

   XmlElement rootelement = doc.DocumentElement;
}

Пожалуйста, помогите мне, предоставив ваши ценные материалы по этому вопросу.

1 Ответ

0 голосов
/ 28 сентября 2018

XDocument и XmlDocument - это различные структуры классов, которым нужно следовать в соответствии с требованием.

XDocument будет работать следующим образом

XDocument doc;
doc = XDocument.Load(filepath);
XElement root = doc.Root;

Root, Потомки,Элементы - это операции, указанные в XDocument.Для каждого узла он дает XElement

В вашем случае вы должны использовать doc.Root, чтобы найти элемент, а затем использовать .Value, чтобы получить его значение

XElement идет с System.Xml.Linq.Получено из XNode.Он дает вам сериализованную информацию о каждом узле один за другим.

С другой стороны, XMLDocument будет работать, как показано ниже

XmlDocument doc;
doc = new XmlDocument();
doc.Load(filepath);
XmlElement rootelement = doc.DocumentElement;

XmlElement поставляется с System.Xml,Он получен из XmlNode, который снова получен из IEnumerable.Он предоставляет вам информацию в Enumerable, которую вы можете легко проанализировать.

...