本人想用PHP 对XML节点进行操作,基本思想是:首先创建DomDocument();对象,然后把XML load进来,查找到要操作的节点进行操作。但是问题出现再第一步。
$dom = new DomDocument();时出现以下错误domdocument::domdocument() expects at least 1 parameter, 0 given再网上找了很久也没有确切答案,希望高人指点。

解决方案 »

  1.   

    php 版本多少?
    另外你是不是用的xampp,有人说用了xampp 会覆盖旧的php_domxml.dll 而导致错误。http://us.php.net/manual/en/domdocument.construct.php#84476
      

  2.   

    试试:
    $dom = new DOMDocument("1.0"); 
      

  3.   

    提示少了参数,
    $dom = new DOMDocument('1.0', 'iso-8859-1');
    这样看看。
      

  4.   

    ?晕,直接用PHP函数不行行了,好像叫SimpleXML 多看看PHP MANUAL
    例子 1. Include file example.php with XML string<?php
    $xmlstr = <<<XML
    <?xml version='1.0' standalone='yes'?>
    <movies>
     <movie>
      <title>PHP: Behind the Parser</title>
      <characters>
       <character>
        <name>Ms. Coder</name>
        <actor>Onlivia Actora</actor>
       </character>
       <character>
        <name>Mr. Coder</name>
        <actor>El Act&#211;r</actor>
       </character>
      </characters>
      <plot>
       So, this language. It's like, a programming language. Or is it a
       scripting language? All is revealed in this thrilling horror spoof
       of a documentary.
      </plot>
      <rating type="thumbs">7</rating>
      <rating type="stars">5</rating>
     </movie>
    </movies>
    XML;
    ?>  
     
    The simplicity of SimpleXML appears most clearly when one extracts a string or number from a basic XML document. 例子 2. Getting <plot><?php
    include 'example.php';$xml = simplexml_load_string($xmlstr);echo $xml->movie[0]->plot; // "So this language. It's like..."
    ?>  
     
    例子 3. Accessing non-unique elements in SimpleXMLWhen multiple instances of an element exist as children of a single parent element, normal iteration techniques apply. <?php
    include 'example.php';$xml = simplexml_load_string($xmlstr);/* For each <movie> node, we echo a separate <plot>. */
    foreach ($xml->movie as $movie) {
       echo $movie->plot, '<br />';
    }?>  
     
    例子 4. Using attributesSo far, we have only covered the work of reading element names and their values. SimpleXML can also access element attributes. Access attributes of an element just as you would elements of an array. <?php
    include 'example.php';$xml = simplexml_load_string($xmlstr);/* Access the <rating> nodes of the first movie.
     * Output the rating scale, too. */
    foreach ($xml->movie[0]->rating as $rating) {
        switch((string) $rating['type']) { // Get attributes as element indices
        case 'thumbs':
            echo $rating, ' thumbs up';
            break;
        case 'stars':
            echo $rating, ' stars';
            break;
        }
    }
    ?>  
     
    例子 5. Comparing Elements and Attributes with TextTo compare an element or attribute with a string or pass it into a function that requires a string, you must cast it to a string using (string). Otherwise, PHP treats the element as an object. <?php     
    include 'example.php';$xml = simplexml_load_string($xmlstr);if ((string) $xml->movie->title == 'PHP: Behind the Parser') {
        print 'My favorite movie.';
    }htmlentities((string) $xml->movie->title);
    ?>  
     
    例子 6. Using XpathSimpleXML includes builtin Xpath support. To find all <character> elements: <?php
    include 'example.php';
    $xml = simplexml_load_string($xmlstr);foreach ($xml->xpath('//character') as $character) {
        echo $character->name, 'played by ', $character->actor, '<br />';
    }
    ?>  '//' serves as a wildcard. To specify absolute paths, omit one of the slashes. 
     
    例子 7. Setting valuesData in SimpleXML doesn't have to be constant. The object allows for manipulation of all of its elements. <?php
    include 'example.php';
    $xml = simplexml_load_string($xmlstr);$xml->movie[0]->characters->character[0]->name = 'Miss Coder';echo $xml->asXML();
    ?>  The above code will output a new XML document, just like the original, except that the new XML will change Ms. Coder to Miss Coder. 
     
    例子 8. DOM InteroperabilityPHP has a mechanism to convert XML nodes between SimpleXML and DOM formats. This example shows how one might change a DOM element to SimpleXML. <?php
    $dom = new domDocument;
    $dom->loadXML('<books><book><title>blah</title></book></books>');
    if (!$dom) {
         echo 'Error while parsing the document';
         exit;
    }$s = simplexml_import_dom($dom);echo $s->book[0]->title;
    ?>  
     
      

  5.   

    仅供参考:// 从内存xml字串生成DomDocument对象
    $doc = domxml_open_mem($xmlString);// 从xml文件生成DomDocument对象
    //$doc = domxml_open_file($xmlFile);if ($doc) {
      $items = $doc->get_elements_by_tagname('item');
      foreach ($items as $node) {
        $content = $node->get_content();
        $node->set_content("Modified on " . date('Y-m-d H:i:s'));
      }
      $newXmlString = $doc->dump_mem();
      //$doc->dump_file($xmlFile);
    }
      

  6.   

    居然是xml的...是接下去要学的东西...现在还不懂...先帮你顶上!
      

  7.   

    推荐一个聚合Baidu、Google等大是分类搜索的网站 用它找源码很不错,它加入了国内外较大型的开源平台 如:OpenSource SourceForge GoogleCode Swik Savannah 
     Sarovar Gna Codeplex Highspeedrails Tigris 等 
      
    及国内较大型的IT门户 
    如:CSDN IT168 IT世界网 天极搜索 代码搜索等 同时也加入了网页、新闻、音乐、图片、视频、文学等等分类搜索 网址是:www.sbsou.com 或 www.lovesso.cn 
      

  8.   

    expects at least 1 parameter, 0 given 这句英文的意思就是至少要给一个参数.你没有给参数所以错误.
      

  9.   

    <?php$dom = new DOMDocument('1.0', 'iso-8859-1');echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */?>
      

  10.   

    这种错误提示都很清楚了
    编程的时候,手边要有个PHP的手册http://cn.php.net
    否则以为你在倒分呢