我在服务上运行一个方法,该方法仅在字符串上返回一行XML:

<boolean xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</boolean>


我正在尝试以这种方式反序列化此行:

var strXml = "<boolean xmlns='http://schemas.microsoft.com/2003/10/Serialization/'>true</boolean>";
XmlSerializer serializer = new XmlSerializer(typeof(bool));
bool success = false;

using (TextReader reader = new StringReader(strXml))
{
    success = (bool)serializer.Deserialize(reader);
}


但在行

success = (bool)serializer.Deserialize(reader);


引发异常:

There is an error in XML document (1, 2)


关于我能做什么有什么线索?我是XML序列化的新手。

最佳答案

您只需从根节点获取值,然后尝试将其解析为布尔值:

//load into XDocument
var doc = XDocument.Parse("<boolean xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">true</boolean>");
bool success = bool.Parse(doc.Root.Value); //true

关于c# - 如何在C#上仅反序列化XML一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43072309/

10-15 03:10