检查字符串是否包含至少一个XML节点

时间:2011-06-15 07:48:06

标签: c# asp.net xml

如何检查字符串是否包含至少一个xmlNode。该字符串可能是也可能不是有效的XML。除了检查“<”之外还有什么方法吗?或“>”在字符串中。

由于

2 个答案:

答案 0 :(得分:0)

正则表达式会起作用(提示笑声),有一点需要注意。这个正则表达式不会告诉你是否有多个有效元素,只是至少有一个有效元素。

    static void Main(string[] args)
    {

        System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"<([^>]+)>[^<]*</(\1)>");

        Console.WriteLine(r.IsMatch("<a>One Element</a>").ToString());
        Console.WriteLine(r.IsMatch("<a>Not An Element</b>").ToString());
        Console.WriteLine(r.IsMatch("<a>One Element</a><b>Two Element</b><c>Red Element</c><d>Blue Element</d>").ToString());
        Console.ReadLine();
    }

答案 1 :(得分:0)

建立SamuelWarren的答案, 这个处理可选属性。

    static void Main(string[] args)
    {
        System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"<([^\s^>]+)\s*[^>]*>[^<]*</(\1)>");

        Console.WriteLine(r.IsMatch("<a>One Element</a>").ToString());
        Console.WriteLine(r.IsMatch("<a href=\"http://www.google.com\">One Element</a>").ToString());
        Console.WriteLine(r.IsMatch("<a href=\"http://www.google.com\" id=\"whatever\" class=\"ui-link\">One Element</a>").ToString());
        Console.WriteLine(r.IsMatch("<a>Not An Element</b>").ToString());
        Console.WriteLine(r.IsMatch("<a>One Element</a><b>Two Element</b><c>Red Element</c><d>Blue Element</d>").ToString());
        Console.ReadLine();
    }