Хорошо, я искал вокруг и не могу найти ответ на мою проблему. Я использую Perl для анализа XML-файла, используя XPATH. Часть файла, я не знаю, как будут названы дочерние узлы. Например:
<state xmlns="http://google.com" id=1>
<randomName1 type="boolean">0</randomName1>
</state>
<state xmlns="http://google.com" id=2>
<randomName2 type="boolean">1</randomName2>
</state>
Итак, для каждого randomName мне нужно получить имя, которое я смог сделать, выполнив следующий код (примечание: я получаю список узлов в родительском выражении foreach).
my $elements = $nodes->getChildNodes;
foreach my $element(@$elements)
{
my $name = (lc($element->getName))
}
Моя проблема возникает, когда я пытаюсь получить значение, я пытался поместить my $value = $element->string_value;
в цикл foreach, и все, что он делал, возвращало 0 независимо от имени. Я также безуспешно пытался поместить переменную в оператор xpath string_value.
Есть ли способ поместить переменную в выражение xpath? Что-то похожее на (примечание: это не работает) мой $value = $element->find('$name')->string_value;
?
Извините, если это не ясно, и я постараюсь ответить на любые вопросы, но любая помощь будет принята с благодарностью, я уже потратил больше времени на попытки выяснить это.