在C#中搜索整个xml

时间:2011-04-27 13:17:12

标签: c# xml

如果指定的字符串在xml文档中,我想创建一个返回True的函数。问题是我需要搜索整个文档而不是一个特定的元素,而xml可以包含多个级别......我该怎么做?

2 个答案:

答案 0 :(得分:7)

将XML的内容视为字符串,只搜索您要查找的内容字符串。

public bool FileContainsString(string filePath, string searchString)
{
    string fileContents;
    using(FileStream file = new FileStream(filePath, FileMode.Open))
    using(StreamReader reader = new StreamReader(reader))
    {
        fileContents = reader.ReadToEnd();
    }

    return fileContents.Contains(searchString);
}

此代码未经过测试

如果您想要对字符串进行不区分大小写的搜索,请替换

    return fileContents.Contains(searchString);

    return fileContents.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) > -1;

答案 1 :(得分:0)

XmlDocument doc;
bool contains = doc.InnerXml.IndexOf("Your text") != -1 

应该可以解决这个问题,但如果你只是想检查纯文本的使用,即使它包含在标签中,也会找到文本:

XmlDocument doc;
    bool contains = doc.InnerText.IndexOf("Your text") != -1