I've been playing with this a bit more. It turns out that the word 'Link' (or 'link', either way) is sort of reserved, so is a poor choice for a tag name. That may or may not be contributing to your uneven/illogical results. I would though suggest changing it to - say 'Refnum', or 'Id', as those seem more descriptive and are apparently not reserved words, at least not in this context.
But upon further examination, that's only if the document/text isn't first parsed as xml. So 'Link'/'link' can be used.
In any case, I also was wondering why you weren't using jQuery more (since you are using it to parse the xml). As a result, I came up with this interesting demo:
Code:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<label>Name: <input type="text" id="xml_name"></label><br>
<label>Death Date: <input type="text" id="xml_death_date"></label><br>
<label>Father's Name: <input type="text" id="xml_fathers_name"></label><br>
<label>Name ID: <input type="text" id="xml_name_id"></label><br>
<label>Father's Name ID: <input type="text" id="xml_fathers_id"></label>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
var xmlDeathCert = "<?xml version='1.0' encoding='utf-8'?>\n" +
"<DeathCert>\n" +
"<Item><Title>Name</Title><Data>Joe Fritz</Data><Link>12345</Link></Item>\n" +
"<Item><Title>Death Date</Title><Data>Someday</Data></Item>\n" +
"<Item><Title>Father</Title><Data>Bob Fritz</Data><Link>41254</Link></Item>\n" +
"<Item><Title>Informant</Title><Data>Mary Fritz</Data><Show>Y</Show></Item>\n" +
"</DeathCert>",
xmlDoc = $.parseXML( xmlDeathCert );
function getTagValFromTilte(title, tag, doc){
var $titles = $('Title', $(doc)), rval;
$titles.each(function(i, t){
if($(t).text() === title){
rval = $(t).siblings(tag).text();
return false;
}
});
return rval;
}
$('#xml_name').val(getTagValFromTilte('Name', 'Data', xmlDoc));
$('#xml_death_date').val(getTagValFromTilte('Death Date', 'Data', xmlDoc));
$('#xml_fathers_name').val(getTagValFromTilte('Father', 'Data', xmlDoc));
$('#xml_name_id').val(getTagValFromTilte('Name', 'Link', xmlDoc));
$('#xml_fathers_id').val(getTagValFromTilte('Father', 'Link', xmlDoc));
</script>
</body>
</html>
Bookmarks