2013-04-14 2 views
1

Я написал код ниже:Путаница с Nokogiri :: XML :: Текст # вывода текста

require 'nokogiri' 
require 'pp' 

html = <<-END 
<html> 

    <head> 

    <title> A Dirge </title> 

    <link rel  = "schema.DC" 
      href = "http://purl.org/DC/elements/1.0/"> 

    <meta name = "DC.Title" 
      content = "A Dirge"> 

    <meta name = "DC.Creator" 
      content = "Shelley, Percy Bysshe"> 

    <meta name = "DC.Type" 
      content = "poem"> 

    <meta name = "DC.Date" 
      content = "1820"> 

    <meta name = "DC.Format" 
      content = "text/html"> 

    <meta name = "DC.Language" 
      content = "en"> 

    </head> 

    <body><pre> 

      Rough wind, that moanest loud 
       Grief too sad for song; 
      Wild wind, when sullen cloud 
       Knells all the night long; 
      Sad storm, whose tears are vain, 
      Bare woods, whose branches strain, 
      Deep caves and dreary main, - 
       Wail, for the world's wrong! 

    </pre></body> 

    </html> 
END 

doc = Nokogiri::HTML::DocumentFragment.parse(html) 
pp doc 
doc.children.each do |ch| 
    p ch.text if ch.text? 
end 

Но он выводит:

"\n\n \n\n " 
"\n\n " 

Теперь мой вопрос, почему делает линию внутри <pre>. <\pre> не напечатан?

Может ли кто-нибудь помочь мне исправить эту проблему?

+0

В вопросе уменьшите свои входные данные до минимума, необходимого для адекватного воспроизведения проблемы. В этом случае ни один из блоков '' не подходит. Сохранение '' в порядке, но не утруждайте себя тегами '<meta>', которые бесполезно загромождают вещи. – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="answer-title"> <span class="text-logo margin-top-sm">A</span> <h2 class="title h4">ответ</h2> </div> <div class="item-description text-md markdown-body margin-bottom-40 voidso"> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">1<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p><code class="prettyprint-override">doc.children.each</code> блок выдает немного больше, чем для меня:</p> <pre> "\n\n \n\n " "\n\n " "\n\n " "\n\n " "\n\n " "\n\n " "\n\n " "\n\n " "\n\n \n\n " "\n\n \n" </pre> <p>Это правильно выход; это текстовые узлы, которые являются прямыми дочерними элементами <code class="prettyprint-override"><html></code>.</p> <p>Я не уверен, какую «линию» вы хотели, чтобы вы не видели. Если, например, вы хотите, чтобы содержимое <code class="prettyprint-override"><pre></code>, вы могли бы сделать</p> <pre><code class="prettyprint-override">doc.xpath("pre").text </code></pre> <p>, чтобы получить его. Если это не поможет вам, вам придется уточнить свой вопрос.</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/16002944">источник</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2013-04-14 18:47:35</span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">Смежные вопросы</div> <ul class="relative_list"> <li> 1. <a href="http://ru.voidcc.com/question/p-szeyagur-bqk.html" target="_blank" title="Nokogiri, найти узел XML с несколькими атрибутами и изменить текст"> Nokogiri, найти узел XML с несколькими атрибутами и изменить текст </a> </li> <li> 2. <a href="http://ru.voidcc.com/question/p-tqahglxg-brv.html" target="_blank" title="bash: путаница с перенаправлением вывода"> bash: путаница с перенаправлением вывода </a> </li> <li> 3. <a href="http://ru.voidcc.com/question/p-vreahbnj-tv.html" target="_blank" title="Nokogiri - проблемы с кодировкой XML"> Nokogiri - проблемы с кодировкой XML </a> </li> <li> 4. <a href="http://ru.voidcc.com/question/p-bufuutyg-bbk.html" target="_blank" title="Разбор текста с помощью Nokogiri"> Разбор текста с помощью Nokogiri </a> </li> <li> 5. <a href="http://ru.voidcc.com/question/p-qoituxcv-bdr.html" target="_blank" title="Путаница ввода-вывода файла"> Путаница ввода-вывода файла </a> </li> <li> 6. <a href="http://ru.voidcc.com/question/p-kltwdrmu-zn.html" target="_blank" title="Метод вывода вызова путаница"> Метод вывода вызова путаница </a> </li> <li> 7. <a href="http://ru.voidcc.com/question/p-cdxnsnta-bhx.html" target="_blank" title="Путаница ввода/вывода Java"> Путаница ввода/вывода Java </a> </li> <li> 8. <a href="http://ru.voidcc.com/question/p-wdedrngv-hn.html" target="_blank" title="Синтаксический XML-файл с nokogiri"> Синтаксический XML-файл с nokogiri </a> </li> <li> 9. <a href="http://ru.voidcc.com/question/p-xtphgphz-rz.html" target="_blank" title="Nokogiri с анализом ошибок xml"> Nokogiri с анализом ошибок xml </a> </li> <li> 10. <a href="http://ru.voidcc.com/question/p-hzodazmy-pa.html" target="_blank" title="Синтаксический простой XML с Nokogiri"> Синтаксический простой XML с Nokogiri </a> </li> <li> 11. <a href="http://ru.voidcc.com/question/p-qhisufmr-bbg.html" target="_blank" title="Изменение документа XML с Nokogiri"> Изменение документа XML с Nokogiri </a> </li> <li> 12. <a href="http://ru.voidcc.com/question/p-atoamhps-vx.html" target="_blank" title="Анализ XML с использованием Nokogiri"> Анализ XML с использованием Nokogiri </a> </li> <li> 13. <a href="http://ru.voidcc.com/question/p-zxsrzrks-bqs.html" target="_blank" title="Разбор большого XML с Nokogiri"> Разбор большого XML с Nokogiri </a> </li> <li> 14. <a href="http://ru.voidcc.com/question/p-njyotrbg-pt.html" target="_blank" title="Nokogiri разобрать XML с xpath"> Nokogiri разобрать XML с xpath </a> </li> <li> 15. <a href="http://ru.voidcc.com/question/p-mpxddldl-gp.html" target="_blank" title="Nokogiri XML Синтаксический с Rails"> Nokogiri XML Синтаксический с Rails </a> </li> <li> 16. <a href="http://ru.voidcc.com/question/p-rjnydnyt-bgb.html" target="_blank" title="PHP-рендеринг вывода текста как текст почему ..?"> PHP-рендеринг вывода текста как текст почему ..? </a> </li> <li> 17. <a href="http://ru.voidcc.com/question/p-njvairnw-ke.html" target="_blank" title="Modify и обертывают XML узлов с nokogiri"> Modify и обертывают XML узлов с nokogiri </a> </li> <li> 18. <a href="http://ru.voidcc.com/question/p-onvmexyi-bda.html" target="_blank" title="Nokogiri получить от Nokogiri XPath :: XML :: Element"> Nokogiri получить от Nokogiri XPath :: XML :: Element </a> </li> <li> 19. <a href="http://ru.voidcc.com/question/p-cbbkpkcr-bqc.html" target="_blank" title="Как обрабатывать ' в XML с nokogiri?"> Как обрабатывать ' в XML с nokogiri? </a> </li> <li> 20. <a href="http://ru.voidcc.com/question/p-bmkofqvm-bmz.html" target="_blank" title="Синтаксический XML с Рубином и Nokogiri"> Синтаксический XML с Рубином и Nokogiri </a> </li> <li> 21. <a href="http://ru.voidcc.com/question/p-yzqldsox-brd.html" target="_blank" title="Nokogiri XML-запрос"> Nokogiri XML-запрос </a> </li> <li> 22. <a href="http://ru.voidcc.com/question/p-vkvnzogb-bbu.html" target="_blank" title="nokogiri xml unescape"> nokogiri xml unescape </a> </li> <li> 23. <a href="http://ru.voidcc.com/question/p-bvxxcnvv-zv.html" target="_blank" title="nokogiri: xml to html"> nokogiri: xml to html </a> </li> <li> 24. <a href="http://ru.voidcc.com/question/p-cyewdxge-by.html" target="_blank" title="Форматирование XML из Nokogiri"> Форматирование XML из Nokogiri </a> </li> <li> 25. <a href="http://ru.voidcc.com/question/p-hskiirvm-bbm.html" target="_blank" title="Nokogiri Усекающий XML-вход"> Nokogiri Усекающий XML-вход </a> </li> <li> 26. <a href="http://ru.voidcc.com/question/p-gqfztvfj-bgu.html" target="_blank" title="Синтаксический XML по Nokogiri"> Синтаксический XML по Nokogiri </a> </li> <li> 27. <a href="http://ru.voidcc.com/question/p-qviyfpwu-kt.html" target="_blank" title="Nokogiri pull parser (Nokogiri :: XML :: Reader) проблема с закрывающим тегом"> Nokogiri pull parser (Nokogiri :: XML :: Reader) проблема с закрывающим тегом </a> </li> <li> 28. <a href="http://ru.voidcc.com/question/p-hrcsucbu-td.html" target="_blank" title="Вставить текст После Specific XML тегов в Nokogiri"> Вставить текст После Specific XML тегов в Nokogiri </a> </li> <li> 29. <a href="http://ru.voidcc.com/question/p-oklvupzg-qz.html" target="_blank" title="Nokogiri :: XML :: Reader, похоже, не распознает методы «контент» или «текст»"> Nokogiri :: XML :: Reader, похоже, не распознает методы «контент» или «текст» </a> </li> <li> 30. <a href="http://ru.voidcc.com/question/p-snzbrcuh-bba.html" target="_blank" title="Как получить весь текст без текста с конкретными тегами с помощью Nokogiri?"> Как получить весь текст без текста с конкретными тегами с помощью Nokogiri? </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422009"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Последний вопрос </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ru.voidcc.com/question/p-nnnckcop-bme.html" target="_blank" title="Как найти минимальные строки замены или регулярное выражение, чтобы преобразовать строку в другую строку"> Как найти минимальные строки замены или регулярное выражение, чтобы преобразовать строку в другую строку </a> </li> <li class="side_article_list_item"> 2. <a href="http://ru.voidcc.com/question/p-zctgisxi-boe.html" target="_blank" title="Проблема в том, что я сам поддерживаю .NetCore App"> Проблема в том, что я сам поддерживаю .NetCore App </a> </li> <li class="side_article_list_item"> 3. <a href="http://ru.voidcc.com/question/p-rffirrdl-bnx.html" target="_blank" title="Как обновить браузер после нового развертывания приложения Angular2"> Как обновить браузер после нового развертывания приложения Angular2 </a> </li> <li class="side_article_list_item"> 4. <a href="http://ru.voidcc.com/question/p-ytpvbdvg-bnq.html" target="_blank" title="Webpack построить ошибку"> Webpack построить ошибку </a> </li> <li class="side_article_list_item"> 5. <a href="http://ru.voidcc.com/question/p-fwrbrhkw-bba.html" target="_blank" title="Обновление дочерних объектов в Entity Framework 6"> Обновление дочерних объектов в Entity Framework 6 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ru.voidcc.com/question/p-boqcritc-bbk.html" target="_blank" title="Преобразование PHP CURL в C#"> Преобразование PHP CURL в C# </a> </li> <li class="side_article_list_item"> 7. <a href="http://ru.voidcc.com/question/p-tjfjbsna-bgg.html" target="_blank" title="Как применить css к элементу DOM, имеющему одно и то же имя класса"> Как применить css к элементу DOM, имеющему одно и то же имя класса </a> </li> <li class="side_article_list_item"> 8. <a href="http://ru.voidcc.com/question/p-gxwqfrau-bgq.html" target="_blank" title="Как передать узлы детям в ReactComponent"> Как передать узлы детям в ReactComponent </a> </li> <li class="side_article_list_item"> 9. <a href="http://ru.voidcc.com/question/p-ojuxwgzo-bhr.html" target="_blank" title="VBA Excel - ошибка приложения или объекта с = HYPERLINK"> VBA Excel - ошибка приложения или объекта с = HYPERLINK </a> </li> <li class="side_article_list_item"> 10. <a href="http://ru.voidcc.com/question/p-nustuogf-bhg.html" target="_blank" title="Добавить UIElements для пользовательского контроля во время разработки"> Добавить UIElements для пользовательского контроля во время разработки </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> Смежные вопросы</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ru.voidcc.com/question/p-szeyagur-bqk.html" target="_blank" title="Nokogiri, найти узел XML с несколькими атрибутами и изменить текст"> Nokogiri, найти узел XML с несколькими атрибутами и изменить текст </a> </li> <li class="side_article_list_item"> 2. <a href="http://ru.voidcc.com/question/p-tqahglxg-brv.html" target="_blank" title="bash: путаница с перенаправлением вывода"> bash: путаница с перенаправлением вывода </a> </li> <li class="side_article_list_item"> 3. <a href="http://ru.voidcc.com/question/p-vreahbnj-tv.html" target="_blank" title="Nokogiri - проблемы с кодировкой XML"> Nokogiri - проблемы с кодировкой XML </a> </li> <li class="side_article_list_item"> 4. <a href="http://ru.voidcc.com/question/p-bufuutyg-bbk.html" target="_blank" title="Разбор текста с помощью Nokogiri"> Разбор текста с помощью Nokogiri </a> </li> <li class="side_article_list_item"> 5. <a href="http://ru.voidcc.com/question/p-qoituxcv-bdr.html" target="_blank" title="Путаница ввода-вывода файла"> Путаница ввода-вывода файла </a> </li> <li class="side_article_list_item"> 6. <a href="http://ru.voidcc.com/question/p-kltwdrmu-zn.html" target="_blank" title="Метод вывода вызова путаница"> Метод вывода вызова путаница </a> </li> <li class="side_article_list_item"> 7. <a href="http://ru.voidcc.com/question/p-cdxnsnta-bhx.html" target="_blank" title="Путаница ввода/вывода Java"> Путаница ввода/вывода Java </a> </li> <li class="side_article_list_item"> 8. <a href="http://ru.voidcc.com/question/p-wdedrngv-hn.html" target="_blank" title="Синтаксический XML-файл с nokogiri"> Синтаксический XML-файл с nokogiri </a> </li> <li class="side_article_list_item"> 9. <a href="http://ru.voidcc.com/question/p-xtphgphz-rz.html" target="_blank" title="Nokogiri с анализом ошибок xml"> Nokogiri с анализом ошибок xml </a> </li> <li class="side_article_list_item"> 10. <a href="http://ru.voidcc.com/question/p-hzodazmy-pa.html" target="_blank" title="Синтаксический простой XML с Nokogiri"> Синтаксический простой XML с Nokogiri </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://ru.voidcc.com/contact">Свяжитесь с нами</a></li> <li>© 2020 RU.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>