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

问题描述

| 如何检查一个字符串是否至少包含一个xmlNode。该字符串可能是有效的XML,也可能不是。除了检查字符串中的\“ <\”或\“> \”,还有其他方法吗? 谢谢     

解决方法

        正则表达式将起作用(提示笑声),有一个警告。这个正则表达式不会告诉您是否有多个有效元素,而只是告诉您至少有一个有效元素。
    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();
    }
    ,        以塞缪尔·沃伦的答案为基础, 这个处理可选属性。
    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();
    }