Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > XML textContent и nodeValue


Автор: PsiMagistr 3.10.2016, 10:01
Ребята, мне очень нужна Ваша помощь.

Имеется следующий фрагмент XML

Код

        <message>
            Вы набрали %d из %d максимально возможных баллов. Просто великолепно!
            Вы человек восьмого дня!
            Не может такого быть.  
            <range min="11" max="20">Вы набрали %d из %d максимально возможных баллов. Мало каши ели.</range>
            <range min="21" max="30">Вы набрали %d из %d максимально возможных баллов. Пока Вы нам не подходите. Потренеруйтесь еще.</range>
            <range min="31" max="40">Вы набрали %d из %d максимально возможных баллов. Увы, но пока Вы нам все еще не подходите..</range>
            <range min="41" max="50">Вы набрали %d из %d максимально возможных баллов. Вы человек 8 дня. но пока только наполовину.</range>
            <range min="51" max="60">Вы набрали %d из %d максимально возможных баллов. Ооо! Вы прешли больше половины теста.</range>
            <range min="61" max="70">Вы набрали %d из %d максимально возможных баллов. Еще немножечко. Подтянитесь.</range>
            <range min="71" max="80">Вы набрали %d из %d максимально возможных баллов. Вам осталось совсем чуть-чуть. Капельку.</range>
        </message>        


Пишу следующий код на PHP (DOM)

Код

$messages = $xml->getElementsByTagName('message');
foreach($messages as $message){
     echo $message->nodeValue;
}


И получаю на выходе текстовое содержимое и тега <message></message> и всех потомков (тегов <range></range>). Всегда считал, что за это отвечает свойство $xml->textContent

Как мне получить текстовое содержимое только тега <message></message> т.е. только:

Вы набрали %d из %d максимально возможных баллов. Просто великолепно!
Вы человек восьмого дня!
Не может такого быть.  

Автор: Angel_666 4.10.2016, 11:11
$ranges = $xml->getElementsByTagName('range');
foreach($ranges as $range){
     echo $range->nodeValue."\r\n";
}

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/XML-textContent-i-nodeValue-id57f202a8adbd5f0eed2d7592#findElement_E7045_57f3644986c4c53034704a74_0

Автор: Angel_666 4.10.2016, 11:11
Код

$ranges = $xml->getElementsByTagName('range');
foreach($ranges as $range){
     echo $range->nodeValue."\r\n";
}


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/XML-textContent-i-nodeValue-id57f202a8adbd5f0eed2d7592#findElement_E7045_57f3644986c4c53034704a74_0

Автор: Angel_666 4.10.2016, 11:11
Код

$ranges = $xml->getElementsByTagName('range');
foreach($ranges as $range){
     echo $range->nodeValue."\r\n";
}


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/XML-textContent-i-nodeValue-id57f202a8adbd5f0eed2d7592#findElement_E7045_57f3644986c4c53034704a74_0

Автор: Angel_666 4.10.2016, 11:11
Код

$ranges = $xml->getElementsByTagName('range');
foreach($ranges as $range){
     echo $range->nodeValue."\r\n";
}


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/XML-textContent-i-nodeValue-id57f202a8adbd5f0eed2d7592#findElement_E7045_57f3644986c4c53034704a74_0

Автор: Angel_666 4.10.2016, 11:11
Код

$ranges = $xml->getElementsByTagName('range');
foreach($ranges as $range){
     echo $range->nodeValue."\r\n";
}


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/XML-textContent-i-nodeValue-id57f202a8adbd5f0eed2d7592#findElement_E7045_57f3644986c4c53034704a74_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)