Получение содержимого XML для SimpleXMLElement - PullRequest
7 голосов
/ 10 ноября 2010

Есть ли способ извлечь "innerHTML" из SimpleXMLElement?

Например, как мне получить '<div><h1>Hello World</h1></div>' из следующего XML-кода, используя SimpleXMLElement:

<xml>
  <body1>
    <div><h1>Hello World</h1></div>
  </body1>
  <body2>
    <div><h2>Goodby Moon</h2></div>
  </body2>
</xml>

Я прочитал документацию, и все, что я придумал, было $xml->body1->asXML();. Это почти правильное решение, но оно также добавляет корневой тег:

 <body1>
   <div><h1>Hello World</h1></div>
 </body1>

Можно ли пропустить окружающие теги body1?


Edit:

xml также может выглядеть следующим образом:

<xml>
  <body1>
    <div><h1>Hello World</h1></div>
    <div><h1>Hello Moon</h1></div>
    Some Text
  </body1>
  <body2>
    <div><h2>Goodby Moon</h2></div>
  </body2>
</xml>

Как в: http://codepad.org/8ZuRYZOW

Ответы [ 2 ]

6 голосов
/ 10 ноября 2010

Если вы уверены, что это div, то вы ищете:

$xml->body1[0]->div->asXML();

остальное

$xml->body1[0]->children()->asXML();

http://codepad.org/QUytim28 остальное http://codepad.org/hDt28BL6

0 голосов
/ 10 ноября 2010

Возможно, вам нужен метод детей или вы хотите использовать $xml->body1[ 0 ]->asXML(); (доступ к массиву)

...