c#解析xml with和撇号抛出异常

时间:2010-12-18 17:00:02

标签: c# xml parsing

我正在解析xml文件,并在尝试查找包含撇号的节点时遇到问题。当项目名称没有这一切时,一切正常。我试过用不同的逃避字符替换撇号但是没有太多运气

string s = "/itemDB/item[@name='" + itemName + "']";

// Things i have tried that did not work
// s.Replace("'", "''");
// .Replace("'", "\'");

XmlNode parent = root.SelectSingleNode(s);

我总是收到XPathException。这样做的正确方法是什么。感谢

2 个答案:

答案 0 :(得分:4)

对于apostophe,将其替换为'

答案 1 :(得分:1)

你可以这样做:

XmlDocument root = new XmlDocument();

root.LoadXml(@"<itemDB><item name=""abc'def""/></itemDB>");

XmlNode node = root.SelectSingleNode(@"itemDB/item[@name=""abc'def""]");

请注意逐字字符串文字“@”和双引号。

您的代码将如下所示,无需替换任何内容:

var itemName = @"abc'def";

string s = @"/itemDB/item[@name=""" + itemName + @"""]";