从XmlReader的字符串中删除\"转义字符

Far*_*han 1 c# xml string xml-parsing

我正在从字符串创建一个XmlReader.此字符串包含字符串格式的XML提要.

字符串中的XML片段是:

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<menu>
    <menuitem name=\"Tools\">
    </menuitem>
</menu>
Run Code Online (Sandbox Code Playgroud)

所以当执行以下行时:

XmlReader myXmlReader = XmlReader.Create(myInputString);
Run Code Online (Sandbox Code Playgroud)

生成此错误:

Illegal characters in path.
Run Code Online (Sandbox Code Playgroud)

问题是因为\"字符串中的转义字符().我怎么能绕过这个?

谢谢.

SLa*_*aks 11

你问题的每个字都错了.

您正在看到\字符,因为调试器将字符串显示为有效的字符串文字.
字符串本身很好.如果将其打印到控制台,或使用Text Visualizer,您将看到字符串的原始值.

XmlReader.Create()抛出异常,因为它需要一个文件的路径,而不是一串源.
要解析一串XML源,请StringReader从该字符串创建一个新的并传递它.


最后,XmlReader是一个非常烦人的API.
您应该使用LINQ to XML; 简单地调用XElement.Parse().