Autor Zpráva
lolkohrad
Profil *
ahoj, mam nasledujici kod xml a php a chtel bych zmenit pro id = 28 obsah elementu <name> ale nejak se mi to nedari a pise mi to chyby, pomuze nekdo?

kod php:
$xml = new DomDocument;    
$xml->load('aaa.xml') or die("Error");


$xpath = new DOMXpath($xml);

$ids = $xml->getElementsByTagName('id');

foreach ($ids as $id) {
  if ($id->nodeValue == '28') {
      $child = $xml->createElement('name');
      $childA = $xml->createTextNode("some text");
      $child->appendChild($childA);
      $old = $xpath->query('/items/item/name');
      $id = $old->item(0)->parentNode->replaceChild($childA,$old->item(0));
      
  }
}
echo "<xmp>". $xml->saveXML() ."</xmp>";

kod xml:
<?xml version="1.0"?>
<datas>
  <items>
    <item>
      <id>31</id>
      <name>Jmeno</name>
      <description>Popis</description>
      <price>Cena </price>
      <pic>URL</pic>
    </item>
    <item>
      <id>30</id>
      <name>rrr</name>
      <description>dd</description>
      <price>ss</price>
      <pic/>
    </item>
    <item>
      <id>28</id>
      <name>jjj</name>
      <description>kkk</description>
      <price>lll</price>
      <pic>fdsfsd</pic>
    </item>
  </items>
</datas>
Jan Tvrdík
Profil
lolkohrad:
Např. takto:
$result = $xpath->query('//item/id[text()=28]/../name');
$result->item(0)->nodeValue = 'new name';

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: