Мне нужно запросить содержимое тега XML, сопоставить все родительские узлы с одинаковым идентификатором и показать результат на странице.
псевдокод:
- loadXML-файл
- получить ввод от пользователя (var inputTerm)
- найти inputTerm в теге XML
<term>
- получить идентификатор родительского узла
<entry>
- найти все входные узлы с одинаковым идентификатором из inputTerm
- показать все дочерние узлы для этих записей
Я получил шаг 4 в псевдокоде, но не знаю, как перейтина.Я должен снова пройтись по XML-файлу, чтобы найти все теги ввода с идентичным идентификатором.
XML:
<terms>
<entry ID="1">
<language>en</language>
<term>user</term>
<state>text</state>
<use>text</use>
<definition>text</definition>
<definition-source>text</definition-source>
<source>text</source>
<circle>text</circle>
</entry>
<entry ID="1">
<language>de</language>
<term>user1</term>
<state>text</state>
<use>text</use>
<definition>text</definition>
<definition-source>text</definition-source>
<source>text</source>
<circle>text</circle>
</entry>
<entry ID="2">[...]</entry>
[...]
</term>
jQuery:
$.ajax({
type: "GET" ,
url: "assets/db/export.xml" ,
dataType: "xml" ,
success: function(xml) {
$('entry', xml).each(function() {
var $entry = $(this)
var xterm = $entry.find("term").text();
$('#submit').click(function() {
// get input from user
var inputTerm = $('#find-term').val();
// match user input and XML content
if (inputTerm === xterm) {
// get ID from matching term
var matchingID = $entry.attr('ID');
console.log(matchingID);
// How to go on here?
var language = $entry.find("language").text();
var term = $entry.find("term").text();
var state = $entry.find("state").text();
var use = $entry.find("use").text();
var definition = $entry.find("definition").text();
var definitionSource = $entry.find("definition-source").text();
var source = $entry.find("source").text();
var circle = $entry.find("circle").text();
// show results
$('.values').append('<li>' + language + '</li>');
$('.term').append('<li>' + term + '</li>');
$('.state').append('<li>' + state + '</li>');
$('.usage').append('<li>' + use + '</li>');
$('.definition').append('<li>' + definition + '</li>');
$('.definition-source').append('<li>' + definitionSource + '</li>');
$('.source').append('<li>' + source + '</li>');
$('.circle').append('<li>' + circle + '</li>');
}
else {
console.log("No entry found.");
}
});
})
}
});
Могу ли ядобавить каждую секунду и как сопоставить все записи с одинаковым идентификатором?