FileUpload для загрузки .XML - PullRequest
       4

FileUpload для загрузки .XML

2 голосов
/ 18 января 2012

Ранее я загружал файл XML, используя:

        XDocument doc = XDocument.Load("File.xml");
        Visit(doc.Root);

Теперь я хочу загрузить файл с помощью поля FileUpload:

        XmlDocument doc = new XmlDocument();
        doc.Load(FileUpload1.FileContent);
        Visit(doc.root);

Но теперь я получаю сообщение об ошибке "(doc.root)". В нем говорится, что «не содержит определения« Root »и нет метода расширения« Root », принимающего первый тип аргумента». Что я делаю не так?

1 Ответ

2 голосов
/ 18 января 2012

Это потому, что XmlDocument не имеет корневого свойства; Корень XmlDocument представлен свойством DocumentElement объекта, в вашем случае: doc.DocumentElement, и поскольку ваш метод получает параметр XElement в качестве входных данных, вам нужно будет преобразовать XmlElement в XElement, прежде чем передать его в свой Visit () метод. Используйте для этого функцию ниже.

  /// <summary>  
  /// Converts an XmlElement to an XElement.  
  /// </summary>  
  /// <param name="xmlelement">The XmlElement to convert.</param>  
  /// <returns>The equivalent XElement.</returns>  
  public static XElement ToXElement(XmlElement xmlelement)  
  {    
     return XElement.Load(xmlelement.CreateNavigator().ReadSubtree());  
  }

Тогда попробуйте позвонить следующим образом:

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