1

我有这个 xhtml :

<?xml version="1.0" encoding="UTF-8"?>
<html>
    <head>
        <meta charset="utf-8"></meta>
    </head>
    <body>
        <nav>
            <ol>
                <li>
                    <a href="cover.xhtml">Cover</a>
                </li>
                <li>
                    <a href="page002.xhtml">P002</a>
                </li>
                <li>
                    <a href="page005.xhtml">P005</a>
                </li>
                <li>
                    <a href="page038.xhtml">P038</a>
                </li>
            </ol>
        </nav>
    </body>
</html>

我在 php 中这样做:

  copy("nav.xhtml", "nav.xml");
  $doc1 = simplexml_load_file("nav.xml");
  foreach($doc1->body->nav->ol->li->a as $seg){ 
       $dom=dom_import_simplexml($seg);
       $dom->parentNode->removeChild($dom);
  }
  $doc1->asXml("nav.xhtml"); 

结果,只删除了拳头。我想全部删除。为什么不正确?

谢谢。

4

2 回答 2

3

尝试这个。

foreach($xml->body->nav->ol->li as $items)
{
    unset($items->a);
}
于 2013-04-22T13:31:30.823 回答
0

这将是 DOM 方法,我认为它可以在将来为您省去麻烦:

$dom = new DOMDocument();
$dom->load($file);

$ol = $dom->getElementsByTagName('ol')->item(0);
$list_elements = $ol->getElementsByTagName('li');

foreach($list_elements as $li){
    $links = $li->getElementsByTagName('a');
    foreach($links as $a){
        $li->removeChild($a);
    }
}

$output = $dom->saveXML();

echo $output;
于 2013-04-22T13:50:50.957 回答