Я понял.Это работает:
function specificNodeValue($node, $implode = true) {
$value = array();
if ($node->childNodes) {
for ($i = 0; $i < $node->childNodes->length; $i++) {
if (!(@$node->childNodes->item($i)->tagName)) {
$value[] = $node->childNodes->item($i)->nodeValue;
}
}
}
return (is_string($implode) ? implode($implode, $value) : ($implode === true ? implode($value) : $value));
}
Данный узел подобен корню, если вы не получаете tagName при разборе его дочерних узлов, то он сам по себе, так что значение этого дочернего узла это его собственное значение.
Внутри плохо сформированного xml-документа узел может иметь много значений, поместите их все в массив, чтобы получить полное значение узла.
Используйте приведенную выше функцию для получения необходимого значения узла без слияния значений подузлов.
Параметры:
$ node (обязательный) должен быть объектом DOMElement
$ implode (необязательно), если вы хотите получить строку (true по умолчанию) или массив (false), составленныймногими ценностями.( Установите строку вместо логического значения, если вы хотите взорвать массив, используя «клейкую» строку ).