Проблема преобразования строковой структуры xml в объект XDocument - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть строка XML, которую я хочу преобразовать в объект XDocument. Я следовал этому примеру от Microsoft https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xdocument.parse?view=netframework-4.7.2.

Проблема заключается не в том, чтобы получить приведенный ниже результат, как в примере

    <!-- comment at the root level -->  
<Root>  
  <Child>Content</Child>  
</Root>

Я получил следующий результат

 {<!-- comment at the root level -->
<Root>
<Child>Content</Child>
</Root>}
BaseUri: ""
Declaration: {<?xml version="1.0"?>}
Document: {<!-- comment at the root level -->
<Root>
<Child>Content</Child>
</Root>}
DocumentType: null
FirstNode: {<!-- comment at the root level -->}
LastNode: {<Root>
<Child>Content</Child>
</Root>}
NextNode: null
NodeType: Document
Parent: null
PreviousNode: null
Root: {<Root>
<Child>Content</Child>
</Root>}

Я хочу получить четкий результат XML без других метаданных, таких как информация об узлах, как показано ниже

<!-- comment at the root level -->  
    <Root>  
      <Child>Content</Child>  
    </Root>

Я использую метод XDocument.Parse ()

Я добавил код, который использую

объявление xmlString

var xmlString = @"<?xml version=""1.0""?><!-- comment at the root level --><Root><Child>Content</Child></Root>";

и вот как я создаю объект XDocument

XDocument xDoc = XDocument.Parse(xmlString);

1 Ответ

0 голосов
/ 07 ноября 2018

Данный пример из MSDN выдает ожидаемый результат

    <!-- comment at the root level -->  
<Root>  
  <Child>Content</Child>  
</Root>

Вывод, который вы опубликовали, похож на все свойства XDocument. Объект XDocument содержит больше информации, чем просто обычный XML, который вы проанализировали. В этом примере вывод, который создается строкой Console.WriteLine(doc);, - это строка, которую вы указали в виде XML, потому что она вызывает doc.ToString(), что создает «необработанный» вывод XML.

Так что я думаю, что вы можете запутаться с XDocument, содержащим больше информации (свойств, чем ваш необработанный xml). Но вы можете отлично запросить данные XML, используя LinqToXML (https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview).

Похоже, что синтаксический анализ работает точно так же, как и должен (синтаксический анализ необработанного XML для объекта типа XDocument).

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