0
我想用c#找到一个html元素,但我正在努力与转义字符。我下面的代码是一个HTML,并试图找到它内的元素,但开始不返回IndexOf。我究竟做错了什么?转义字符头痛
//html im trying to find <table cellspacing="0" cellpadding="0" class="cbParent" summary="Results from your search" id="searchResultsTbl">
string table = "<table cellspacing=\"0\" cellpadding=\"0\" class=\"cbParent\" summary=\"Results from your search\" id=\"searchResultsTbl\">";
int start = html.IndexOf(table);
为什么你不使用''而不是“”? – 2010-11-13 03:05:52
我试过了string table = @“
这很可能是真正的问题是你使用的是字符串处理,当你应该使用一个能够处理HTML DOM的库 - 一个你可以使用的地方,哦,某种XPath或CSS选择器找到基于ID的元素。如果IndexOf不匹配,则它不匹配并且与转义字符无关(除非您认为字符串文字被转换为字符串对象)。也许你试图在一个地方有而不是?哎呀。如果文档符合XML标准,那么XDocument或XmlDocument真的很容易使用。 –
2010-11-13 03:16:02
回答
可以代替双引号
的使用单引号说明:
HTML属性可能有单引号
' '
或双引号" "
来源
2010-11-13 03:08:40
@pst感谢您的更新 – 2010-11-13 03:13:22
已返回的HTML包含双引号,这是否重要? – 2010-11-13 03:14:14
这是一种简单的表示方法,但是由于它是一个IndexOf(完全是另一个问题!),它稍微改变了语义。 – 2010-11-13 03:15:14
您确定它在
html
字符串中吗?您也可以尝试在字符串文字之前放置一个
@
,在这种情况下,将使用""
而不是\"
完成双引号。来源
2010-11-13 03:03:28 David
嗨大卫,是它的整个HTML页面。我曾尝试使用@之前,但似乎并没有帮助 – 2010-11-13 03:06:06
这(逐字字符串)将只是''''结构''' - 不知道这是一个改进。 - – 2010-11-13 03:12:59
您可以使用
逐字使用它。使用双引号两次逃脱它
来源
2010-11-13 03:03:50 Gishu
相关问题