2012-05-15 34 views
0

我有一个DOM,我想用Hpricot插入一个新节点。在这里我的DOM结构:如何在Hpricot中追加新节点

<html> 
    <head> 
    </head> 
    <body> 
    ... 
    ... 

    </body> 
</html> 

我想是我必须插入脚本标记为<body>有点像过去的孩子:

<body> 
    ... 
    <script> 
    console.log(document.cookie) 
    </script> 
</body> 

这是我有:

doc = Hpricot.XML(%{<html> 
        <head> 
         </head> 
         <body> 
         ... 
         ... 
         </body> 
        </html> 
        }) 

doc.at('body') 

但现在我没有得到任何期望的方法前进和hpricot的文档很烂。有没有人做过这个?

+1

如果你的投入不是太大,[nokogiri](http://nokogiri.org/)是ag Ood替代Hpricot。 – tadman

+0

@tadman鼓励我尝试nokigiri再次使用nokogiri发现它最后 – Viren

回答

1

实现,但使用Nokigiri粘贴柜面如果有人想这样做

这里的HTML

h1 = Nokogiri::XML.parse %{<html> 
     <head> 
      <script> 
      alert("hello"); 
      </script> 
     </head> 
     <body> 
     <p> THIS IS WAR </p> 
     </body> 
    </html>} 

apend您的标签(我的情况script标签)作为身体的最后一个子

h1.search('body').children.after(%{<script> alert ('Hello') </script>}) 

希望对某些人有所帮助