Теги, оставшиеся после использования simplexml_load_string

Я использую simplexml_load_string для пакетов XML. В моем сценарии строка XML, которую я хочу преобразовать, известна как k. Моя проблема, однако, в том, что когда я использую k, остаются не проанализированные теги (<k>, <\k>).

Например, я использую $x->k, а возвращаюсь <k>DATA I WANT HERE<\EK>. Как мне от них избавиться?

Что делает код: он подключается к игре и входит в систему.


person user1432856    schedule 02.06.2012    source источник
comment
Добавьте свой код, иначе непонятно, в чем на самом деле проблема. Думаю, тогда это довольно просто решить.   -  person hakre    schedule 03.06.2012
comment
Это пакет, который я пытаюсь получить из ‹msg t = 'sys'› ‹body action = 'rndK' r = '- 1'› ‹k› qH ~ e9Gmt ‹/k› ‹/body› ‹/ msg ›, но теги включаются, когда я получаю его через simplexml   -  person user1432856    schedule 03.06.2012
comment
Добавьте это к своему вопросу. А также покажите свой PHP-код. Иначе непонятно, что такое $x например. Просто добавьте, при необходимости укоротите.   -  person hakre    schedule 03.06.2012
comment
Кстати. Я рекомендую вам использовать python для разбора xml / html, так проще и лучше   -  person therealszaka    schedule 03.06.2012
comment
@ user1432856 Ваш PHP-код неверен. Это должно быть (string)$x->body->k.   -  person Michael    schedule 03.06.2012


Ответы (2)


Используйте InnerNode, чтобы получить значение без тегов:

$x->k->InnerNode

Вы также можете выполнить приведение типов:

(string)$x->k
person McGarnagle    schedule 02.06.2012
comment
Спасибо за помощь, но похоже, что они не работают. Я получаю ‹K \› data ‹EK \›, когда использую Innernode / typecast. - person user1432856; 03.06.2012
comment
@ user1432856 подождите .. вы получаете ‹K \› data ‹EK \›? Это отличается от того, о чем говорится в вопросе ... - person McGarnagle; 03.06.2012
comment
Да, извините, если я неточно представил то, что пытался сказать, я не очень хорошо умею объяснять. - person user1432856; 03.06.2012
comment
@ user1432856 Не беспокойтесь, просто решение должно быть другое. Но почему бы вам просто не заменить строку, чтобы избавиться от этих тегов? - person McGarnagle; 03.06.2012
comment
Затем используйте strip_tags, чтобы удалить теги. - person dotty; 03.06.2012

Я пробовал это и, кажется, получаю строку.

<?php
$str = "<msg t='sys'><body action='rndK' r='-1'><k>qH~e9Gmt</k></body></msg>";

$xml = simplexml_load_string( $str );
echo $xml->body->k; // gives 'qH~e9Gmt'
?>
person web-nomad    schedule 04.06.2012