2012-05-15 8 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/) ood альтернатива Hpricot. – tadman

+0

@ tadman за то, что он меня вдохновил попробовать нокигири, снова нашел его, используя наконец 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 ваш тег (мой случай сценария тег) в качестве последнего потомка тела

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

Надеюсь, что эта помощь поможет вам получить помощь

Смежные вопросы