我试图理解一些例子,包括这里的问题,所以我很抱歉,如果这在我看来是重复的,但我找不到我能理解的RegularExpression。
我有一些HTML要使用XML解析器进行解析 - 但我想删除< head> < /头>来自此内容的标记,因为其余内容对于正常的XML解析而言足够有效。
标签< head>到< / head>必须删除它们的内容,以便外部HTML不受影响< body>标签等
这是包含我想删除的头HTML的部分供参考:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<link rel="stylesheet" type="text/css" href="/style/stylesheet.css" />
<meta name="description" content="Information" />
<base target="_top">
</head>
<body>
<!-- Body Here -->
</body>
</html>
我还需要剥离DocType,如果可以使用RegEx完成,那就太棒了。头总是一样的 - 我想从&lt; head&gt;中删除到&lt; / head&gt;仅包含,如果可能,也从文本中删除DOCTYPE。
此外,这需要在Silverlight中工作并使用System.Text.RegularExpressions或类似工作。
答案 0 :(得分:2)
正则表达式和HTML是一种罪恶......
答案 1 :(得分:1)
您可以使用string.Substring + string.IndexOf来提取正文XML元素。
代码应该是这样的:
MyHtml.Substring(sHtml.IndexOf("<body>"), sHtml.IndexOf("</body>") - sHtml.IndexOf("<body>") + 7);
答案 2 :(得分:1)
提取身体更容易 - 这是我正在使用的RegEx:
@"\<body\>(.*?)\</body\>"
现在我可以使用LINQ-to-XML来解析它了。