2016-12-16 2 views
0

У меня есть XML в струнной вар "XML"XDocumetn.Load из документа с версии 1.1 в голове вызывают XmlException

<?xml version=""1.1"" encoding=""UTF - 8"" ?> 
< insertCommand table=""Colors""> 
<parameter name=""Color"">Red</parameter> 
<parameter name=""Code"">#FF0000</parameter> 
</insertCommand> 

Я пытаюсь получить XDocument.

 using (var inputStream = new StringReader(xml)) 
     {     
      //var doc = new XPathDocument(inputStream);// It`s a same result 
      var doc = XDocument.Load(inputStream); // the exception occurs    
      using (var outputStream = doc.CreateWriter()) 
      { 
       .... 
      } 
     } 

System.Xml.XmlException. Не допускается номер версии 1.1.

ответ

1

Если в XML есть что-то определенное для 1.1, вы можете прочитать его как строку, изменить версию на 1.0 и затем обработать ее в обычном режиме. Вы можете выполнить поиск в Интернете, чтобы узнать, каковы различия.

В VB .Net это работало

Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) 
    path = IO.Path.Combine(path, "test.xml") 

    Dim myXML As String = IO.File.ReadAllText(path) 
    Dim repl As String = "<?xml version=""1.1""" 
    Dim replwith As String = "<?xml version=""1.0""" 
    myXML = myXML.Replace(repl, replwith) 

    Dim xe As XElement = XElement.Parse(myXML) 

FWIW - XML, вы вывесили были некоторые ошибки

<?xml version=""1.1"" encoding="utf-8" ?> encoding attribute 
<insertCommand table=""Colors""> spce before tag name 
<parameter name=""Color"">Red</parameter> 
<parameter name=""Code"">#FF0000</parameter> 
</insertCommand> 
+0

That's именно то, что я сделал. Я не нахожу еще более подходящего пути. – trueboroda

Смежные вопросы