1

我在字符串 var "xml" 中有 xml

<?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。

4

1 回答 1

0

除非 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>
于 2016-12-18T13:28:02.093 回答