这个字符串格式有什么问题?

时间:2010-08-27 00:15:21

标签: c# web-scraping

我想知道是否有人知道这个html字符串代码是什么:

    <object height=\\\"38\" + \"5\\\" width=\\\"64\" + \"0\\\" classid=\\\"clsid:D27CDB6E-
AE6D-11cf-96B8-444553540000\\\" id=\\\"movie_player\\\" ><param name=\\\"movie\\\" 
value=\\\"http:\\/\\/s.ytimg.com\\/yt\\/swf\\/watch_as3-vfl186120.swf\\\"><param 
name=\\\"flashvars\\\" value=\\\"...." allowscriptaccess=\\\"always\\\" 
allowfullscreen=\\\"true\\\" bgcolor=\\\"#000000\\\" \\/>

它看起来很可怕......它嵌入在JavaScript函数中,以后可以呈现给页面。任何人都可以告诉我如何使用Html Agility Pack或RegEx来清理它,虽然看起来很麻烦!

重要的方面是让height=\\\"38\" + \"5\\\"成为height="385"等。我可以摆脱过度的斜线没问题。

非常感谢任何指导。

编辑:最后这是我用来完成标签的内容

        objectNodeFormat.Replace(@"\", "");
        objectNodeFormat.Replace(@" + ", "");
        objectNodeFormat.Replace(@"""""", "");

再次感谢。

1 个答案:

答案 0 :(得分:1)

看起来双反斜杠是为了逃避斜线和第三个反斜杠来逃避报价......哇!它确实看起来很麻烦....说...把所有字符串填充到StringBuilder中并使用删除 StringBuilder对象的Replace方法来去除所有那些反斜杠......

StringBuilder sbRemove = new StringBuilder();
sbRemove.Append(@"<object height=\\\"38\" + \"5\\\" width=\\\"64\" + \"0\\\" classid=\\\"clsid:D27CDB6E-
AE6D-11cf-96B8-444553540000\\\" id=\\\"movie_player\\\" ><param name=\\\"movie\\\" 
value=\\\"http:\\/\\/s.ytimg.com\\/yt\\/swf\\/watch_as3-vfl186120.swf\\\"><param 
name=\\\"flashvars\\\" value=\\\"...." allowscriptaccess=\\\"always\\\" 
allowfullscreen=\\\"true\\\" bgcolor=\\\"#000000\\\" \\/>");
sbRemove.Replace(@"\\\", "");
sbRemove.Replace(@"\"", "");

编辑: 将其更改为替换 - mea culpa