none
HtmlDocument如何操作html标签中的style标签的内容? RRS feed

  • 问题

  • 就是用C#操作一个html文档,例如:
    <head>
    <title>test</title>
    <style type="text/css">
    <!--
    .class1 {
    	font-family: Arial, Helvetica, sans-serif;
    }
    -->
    </style>
    </head>
    <body >
    <span class="class1" >test</span>
    </body>
    </html>
    

    如何操作里面style的内容?我是想或者我想怎加css的class。

    我之前通过HtmlDocument对象的GetElementsByTagName("style")[0]方法,得到了style标签HtmlElement对象,
    但是当我访问该style里面的内容时却出现了问题:

                string str = htmlDocument.GetElementsByTagName("style")[0].InnerHtml;  //正确
                htmlDocument.GetElementsByTagName("style")[0].InnerHtml = str;          //异常:此类型的 HtmlElement 不支持属性。
    
    

    设置InnerHtml属性时发生了异常“此类型的 HtmlElement 不支持属性。
    MSDN文档:ms-help://MS.MSDNQTR.v90.chs/fxref_system.windows.forms/html/0553825d-882f-146a-bece-98b6926fadb0.htm
    上也说了:“有些标记(如 SCRIPT 标记)只能包含文本内容,设置 InnerHtml 将导致错误。”,style应该和script的标签类似。
    于是我改用InnerText:

                string str = htmlDocument.GetElementsByTagName("style")[0].InnerText;  //str为空            
                htmlDocument.GetElementsByTagName("style")[0].InnerText = str;          //异常:此类型的 HtmlElement 不支持属性。
    
    
    该用InnerText之后,首先无法获得到标签内的内容,而且赋值时,仍然报异常:此类型的 HtmlElement 不支持属性。
    请问,我如何才能修改style标签的内容呢?

    2010年2月22日 6:23

答案

全部回复