Autor Zpráva
lolkohrad
Profil *
potreboval bych najit podle hodnoty id node a cely item vymazat.

XML mam ve tvaru:

<?xml version="1.0" encoding="UTF-8"?>
<datas>
  <books>
    <item>
      <id>3</id>
      <name>jízdenka</name>
      <author>pro Michalku</author>
    </item>
    <item>
      <id>5</id>
      <name>jízdenka</name>
      <author>pro Michalku</author>
    </item>
  </books>
</datas>

kod pro nalezeni podle id cisla a nasledne vymazani mam nasledujici(pri spusteni se nic nestane):
  function remove($node){
  
  
  $file = "aaa.xml";
    $fp = fopen($file, "rb") or die("cannot open file");
    $str = fread($fp, filesize($file));
    
    $xml = new DOMDocument();
    $xml->formatOutput = true;
    $xml->preserveWhiteSpace = false;
    $xml->load('aaa.xml') or die("Error");
  $searchNode = $xml->getElementsByTagName( "id" );

  foreach( $searchNode as $searchNode )
  {
    $valueID = $searchNode->getAttribute('id');
    if($valueID==$node){
      $searchNode->parentNode->removeChild($valueID);
    }

  }
  $xml->save('aaa.xml'); 
  }
  
  remove(3); 
Jan Tvrdík
Profil
$searchNode->getAttribute('id'); je nesmysl, žádný atribut id tam nemáš. Zkus spíš $searchNode->textContent.
lolkohrad
Profil *
to je pravda, zkusil jsem to zmenit, ale hlasi to chybu. Zkusil jsem i to xml predelat a dat mu attribut id, ale take to nejde. Najde se nekdo kdo mi pomuze ?


tak jsem to nakonec vyresil jinak asice pres Xpath

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:

0