У меня есть файл XML, как это:Как распечатать значение атрибута вместо содержимого элемента?
<wave waveID="1">
<well wellID="1" wellName="A1">
<oneDataSet>
<rawData>0.1123975676</rawData>
</oneDataSet>
<well>
Я пытаюсь напечатать атрибут wellName со следующим кодом:
my @n1 = $xc->findnodes('//ns:wave[@waveID="1"]');
# so @n1 is an array of nodes with the waveID 1
# Above you are searching from the root of the tree,
# for element wave, with attribute waveID set to 1.
foreach $nod1 (@n1) {
# $nod1 is the name of the iterator,
# which iterates through the array @n1 of node values.
my @wellNames = $nod1->getElementsByTagName('well'); #element inside the tree.
# print out the wellNames :
foreach $well_name (@wellNames) {
print $well_name->textContent;
print "\n";
}
но вместо распечатки wellName, я распечатывания значения rawData (например, 0.1123975676). Я не понимаю, почему, не так ли? Я попытался прокомментировать код, чтобы понять, что происходит, но если комментарии неверны, пожалуйста, исправьте меня. Благодарю.
Можете ли вы привести пример того, что вы имеете в виду под «сырой RAWDATA»? Вы имеете в виду ссылку «SCALAR (0 × 814f5c4)»? –
Спасибо, я добавил более подробно на вопрос. – John
Вы заметите, что XML содержит тег «rawData». 'textContent' выводит текстовый контент (а не атрибуты) этого узла и всех дочерних узлов - другими словами, ожидается, что он напечатает' 0.1123975676' –