Курсор возвращает счетчик -1, но элементы присутствуют?

Я использую базу данных SQLite для хранения и получения данных моего приложения и что проверять на наличие дублирующих записей. I попытаться получить все записи с совпадающими заголовками, как показано ниже:

Cursor c = mDb.query(DatabaseHelper.GOALS_TABLE_NAME, 
                     new String[] { Goals.GOAL_ID, Goals.TITLE }, 
                     Goals.TITLE + "='" + title + "'", null, null, null, 
                     null, null);

где title - это тот, с которым сравнивать.

Этот запрос выполняется, но курсор дает счетчик -1. Вызов без предложения where также возвращает -1, ...

I am parsing an XML doc that looks something like this:

<MyBook>
   <title>Favorite Poems</title>
   <issn>123-456</issn>
   <pages>45</pages>
</MyBook>
<MyBook>
   <title>Chocolate Desserts</title>
   <issn>654-098</issn>
   <pages>100</pages>
</MyBook>
<MyBook>
   <title>Jabberwocky</title>
   <issn>454-545</issn>
   <pages>19</pages>
</MyBook>

I use xpath to pull out the MyBook nodes and iterate through them like so:

xmldoc.xpath("//MyBook").each do |node|
   mytitle=node.xpath("//title").text
   puts mytitle
end

the output looks like this:

Favorite PoemsChocolateDessertsJabberwocky
Favorite PoemsChocolateDessertsJabberwocky
Favorite PoemsChocolateDessertsJabberwocky

as if the node is really the whole xmldoc. However if I print out the node within the iterator, each time it is what I expect, just a single MyBook node. I need to be able to pull out the child nodes from each node successively, not all of the same kind of child node from the whole document. What am I doing wrong?

43
задан Jan Minárik 2 December 2016 в 15:06
поделиться

2 ответа

Когда вы используете // title , выполняется поиск всех элементов </code>, начиная с корня документа. Используйте либо просто <code> title </code>, чтобы найти дочерние заголовки, либо <code> .// title </code>, если вы хотите найти заголовки, даже если они вложены внутри других элементов. </p> </div> <div class="votes-answer green"> <div class="vote-count" itemprop="upvoteCount">73</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="26 November 2019 в 22:56 ">26 November 2019 в 22:56 </span> </div> <a class="s-link" href="/questions/256626/kursor-vozvraschaet-schetchik-1-no-elementy-prisutstvujut#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-975550"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div class="answer" id="977850" itemscope="" itemtype="http://schema.org/Answer"> <div class="answer-row"> <div class="answer-text"> <div class="description" itemprop="text"> <p>Удалите // из выражения xpath заголовка. </p> </div> <div class="votes-answer"> <div class="vote-count" itemprop="upvoteCount">0</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="26 November 2019 в 22:56 ">26 November 2019 в 22:56 </span> </div> <a class="s-link" href="/questions/256626/kursor-vozvraschaet-schetchik-1-no-elementy-prisutstvujut#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-977850"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div style="margin-top: 20px;"> Другие вопросы по тегам: <div class="tags" style="display: inline-block; float: none;"> <a href="/questions/tagged/ruby" class="tag" title="ruby" rel="tag">ruby</a> <a href="/questions/tagged/xml" class="tag" title="xml" rel="tag">xml</a> <a href="/questions/tagged/parsing" class="tag" title="parsing" rel="tag">parsing</a> <a href="/questions/tagged/nokogiri" class="tag" title="nokogiri" rel="tag">nokogiri</a> </div> <h3 class="m-t-20">Похожие вопросы:</h3> <div class="related-block"> <ul> <li><div class='votes-answer green'><span class='vote-count'>43</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/180780/ocenka-stroki-prostyh-zakrytyh-matematicheskih-vyrazhenij" title="Оценка строки простых [закрытых] математических выражений">Оценка строки простых [закрытых] математических выражений</a> - 23 May 2017 11:55 </li> <li><div class='votes-answer green'><span class='vote-count'>41</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/131585/izuchenie-ruby-on-rails" title="Изучение Ruby on Rails">Изучение Ruby on Rails</a> - 9 June 2011 23:21 </li> <li><div class='votes-answer green'><span class='vote-count'>39</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/131674/dejstvitelno-li-xslt-stoit-togo-zakrytyj" title="Действительно ли XSLT стоит того? [закрытый]">Действительно ли XSLT стоит того? [закрытый]</a> - 14 March 2011 17:13 </li> <li><div class='votes-answer green'><span class='vote-count'>37</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/131626/skrytye-funkcii-ruby" title="Скрытые функции Ruby">Скрытые функции Ruby</a> - 23 May 2017 10:31 </li> <li><div class='votes-answer green'><span class='vote-count'>35</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/131196/pochemu-izuchajut-perl-python-ruby-esli-kompanija-ispolzuet-c-c-ili-java-kak-jazyk-prilozhenija-zakrytyj" title="Почему изучают Perl, Python, Ruby, если компания использует C++, C# или Java как язык приложения? [закрытый]">Почему изучают Perl, Python, Ruby, если компания использует C++, C# или Java как язык приложения? [закрытый]</a> - 20 May 2010 08:15 </li> <li><div class='votes-answer green'><span class='vote-count'>30</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/14672/pishite-dovol-no-xml-soderzhimoe-v-fajle-s-ispol-zovaniem-java-duplicate" title="Пишите Довольно XML-содержимое в файле с использованием Java [duplicate] ">Пишите Довольно XML-содержимое в файле с использованием Java [duplicate] </a> - 5 July 2013 17:04 </li> <li><div class='votes-answer green'><span class='vote-count'>30</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/9706/php-z-truct-dlya-sozdaniya-xml-iz-massiva-dublikat" title="PHP struct для создания XML из массива? [Дубликат] ">PHP struct для создания XML из массива? [Дубликат] </a> - 13 August 2011 17:01 </li> </ul> </div> </div> </div> </div> </div> <aside class="sidebar"> <div class="awrap"> <script async src="https://yastatic.net/pcode-native/loaders/loader.js"></script> <script> (yaads = window.yaads || []).push({ id: "553274-2", render: "#id-553274-2" }); </script> <div id="id-553274-2"></div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:600px" data-ad-client="ca-pub-2355906945027976" data-ad-slot="8038370725"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </aside> </div> </div> <footer class="footer"> <div class="wrapper wrapper--sm"> <div class="footer-navs-col"> <div class="footer-nav footer-nav--menu"> <div class="footer-coryright">© 2017 - 2020 Вопросы и ответы по программированию</div> </div> <div class="footer-nav footer-nav--catalog"> </div> </div> <div class="footer-contacts-col"> <div class="soc-widget-col"> </div> </div> <div class="clearfix"></div> </div> </footer> </div> <script type="text/javascript" src="/js/ui/jquery-ui-1.8.16.custom.min.js"></script> <script type="text/javascript" src="/js/ui/external/jquery.cookie.js"></script> <script type="text/javascript" src="/js/versions/menu.ru.u1607887878.js"></script> <script type="text/javascript" src="/js/jquery.fancybox.min.js"></script> <script type="text/javascript" src="/js/slick.min.js"></script> <script type="text/javascript" src="/js/jquery.maskedinput.min.js"></script> <script type="text/javascript" src="/js/versions/scripts.ru.u1607887878.js"></script> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; var z = null;m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(90030325, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/90030325" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-123993370-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-123993370-1'); </script> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "name": "Программирование - вопросы и ответы", "alternateName": "Программирование - вопросы и ответы", "url": "https://legkovopros.ru", "potentialAction": { "@type": "SearchAction", "target": "https://legkovopros.ru/search?search={search_term_string}", "query-input": "required name=search_term_string" } } { "@context": "https://schema.org", "@type": "Organization", "name": "Программирование - вопросы и ответы", "url": "https://legkovopros.ru", "logo": "https://legkovopros.ru/i/logo.png", "email": "info@legkovopros.ru", "telephone": "" } </script> </body> </html>