如果字符串包含除ctid
之外的任何其他HTML标签,如何验证?
需要查看,字符串是否包含除products
之外的其他元素。
实现此目标的最佳方法是什么。
如果通过正则表达式获得此结果的任何方法都很好,但不确定是否要准备正则表达式以验证这种情况。
有效字符串的示例:
<div></div>
无效的字符串,因为它包含的HTML标记不是DIV
:
This is the data received from external <div>data string</div>. string <div>valid string</div>
答案 0 :(得分:2)
您需要使用节点程序包管理器控制台安装HtmlAgilityPack。
install-package htmlagilitypack
然后您可以像这样使用它:
using System.Linq;
using HtmlAgilityPack;
static void Main(string[] args)
{
var validstring =
"This is the data received from external<div> data string</ div >. string <div>valid string</ div >";
var invalidstring =
"This is the data received from external <p>data string</p>. string <div>valid string</div>";
var b1 = IsStringValid(validstring); // returns true
var b2 = IsStringValid(invalidstring); // returns false
}
static bool IsStringValid(string str)
{
var pageDocument = new HtmlDocument(); // Create HtmlDocument
pageDocument.LoadHtml(str); // Load the string into the Doc
// check if the descendant nodes only have the names "div" and "#text"
// "#text" is the name of any descendant that isn't inside a html-tag
return !pageDocument.DocumentNode.Descendants().Any(node => node.Name != "div" && node.Name != "#text");
}