Я использую базу данных 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?
Когда вы используете // title
, выполняется поиск всех элементов
, начиная с корня документа. Используйте либо просто title
, чтобы найти дочерние заголовки, либо .// title
, если вы хотите найти заголовки, даже если они вложены внутри других элементов.