PHP доступ XML элемент узла - PullRequest
       10

PHP доступ XML элемент узла

1 голос
/ 14 февраля 2012

Я пытаюсь отредактировать XML с помощью PHP.В настоящее время XML выглядит примерно так:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Main Title</title>
    <link>http://exmaple.com</link>
    <description> blahblahblah </description>
    <language>en</language>
    <item>
      <title>Tite1</title>
      <link>http://www.example.com (THIS IS WHAT I WANT)</link>
      <description>blah blah blah</description>
    </item>
    .
    .
    .
 </channel>
</rss>

Я пытался получить доступ к ссылке второго уровня, но мой код изменяет только значение первого узла Link.Вот код:

       $xml->load('http://www.google.com/doodles/doodles.xml');
    $element = $xml->getElementsByTagName('channel')->item(0);
    $secondlvl = $element->getElementsByTagName('item')->item(0);
    $2ndlevellinknode = $element->getElementsByTagName('link')->item(0);
    $2ndlevellinknode->nodeValue = $newvalue;

Есть предложения?Также возможно ли использовать эту строку кода в цикле for, как этот

for ($i = 0; $i <= 20; $i++) {
    $element = $xml->getElementsByTagName('channel')->item(0);
    $secondlvl = $element->getElementsByTagName('item')->item(0);
    $2ndlevellinknode = $element->getElementsByTagName('link')->item($i);
    $2ndlevellinknode->nodeValue = $newvalue;
}

1 Ответ

2 голосов
/ 14 февраля 2012

это должно дать вам представление.

$f = simplexml_load_file('test.xml');
print $f->channel->title . "\n";
print $f->channel->link . "\n";
print $f->channel->description . "\n";
foreach($f->channel->item as $item) {
  print $item->title . "\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...