simpleXML,可能解析xml.
如果你要修改的话,哪文件操作,读取,正则,保存!

解决方案 »

  1.   

    http://www.w3school.com.cn/php/php_ref_simplexml.asp
    看这里
      

  2.   

    没用过SimpleXML哦,给贴个代码参考下吗
      

  3.   


    function _parseXML($strXML)
    {
      require_once "xmlParser.inc.php";
      $xml = new xmlParser();
      $xml->parseString($strXML);
      $tree = $xml->getTree();
      unset($xml);
      return $tree;
    }函数返回xml结点的数组,var_dump后,自己照着再获取就OK了.
      

  4.   

    晕,发的是xmlParse.
    simpleXML的,直接参考手册就OK了,例子超级多.
      

  5.   

    首先感谢jakey9826 ,但我用simpleXML一直搞不定啊,那位好心的人把代码贴出来啊
      

  6.   


    simpleXML
    Requirements
    The SimpleXML extension requires PHP 5. simpleXML只能用在php5上面.
      

  7.   

    $dom = domxml_open_file('demo.xml');
    $em = $dom->get_elements_by_tagname('TreeNodes');
    $em = $em[0];
    $items=$em->get_elements_by_tagname('TreeNode');
    foreach ($items as $a)
    {
    if ($a->get_attribute('value')==$gradevalue)
    echo $a->get_attribute('Desc');
    }
      

  8.   

    看php的手册把,php4要麻烦点,你也可以google,很多类的
      

  9.   

    感谢wisword,但是问题还是没有解决,Fatal error: Call to undefined function: domxml_open_file() 我想到了一个方法可行,就是利用正则取出来放到数组里,无奈我不会用正则啊,哪位好心的大哥用正则的方法帮我写段代码啊
      

  10.   

    大虾帮忙一下谢谢! 文件有三个  三个分别是aa.php ; bb.xml ; cc.xml ; 我想只要点aa.php  就把bb.xml 里面的内容覆盖  cc.xml ; cc.xml里面全是bb.xml内容了。 在线等,谢谢!
      

  11.   

    Fatal error: Call to undefined function: domxml_open_file() 
    =================================================
    这是因为没有启用dom xml扩展,configure的时候加上 --with-dom,windows的话extension=php_dom_xml.dll正则
    =========================
    preg_match_all("/<TreeNode\s+Desc=\"(.+)\"\s+Value=\"(.+)\"\s*\/?>/",file_get_contents('demo.xml'),$rs);
    var_dump($rs);
      

  12.   

    preg_match_all("/<TreeNode\s+Desc=\"(.+)\"\s+Value=\"(.+)\"\s*\/?>/",file_get_contents('demo.xml'),$rs); 
    前面粘贴的时候多了一个空格
      

  13.   

    原来/与<之间的这个空格是csdn加上的
      

  14.   


    <?php
    $file=bb.xml;
    function startElement($parser, $name, $attrs)
    {
    if (count($attribs)) 
    { foreach($attrs as $key => $value)
    {

    if($key=="Value" && $value=="a" )
    {
    echo $attrs["Desc"];
    }
    }
    }

    }function endElement($parser, $name)
    {
    }function characterData($parser, $data)
    {
        echo $data;
    }$xml_parser = xml_parser_create();
    // 使用大小写折叠来保证我们能在元素数组中找到这些元素名称
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    if (!($fp = fopen($file, "r"))) 
    {
        die("could not open XML input");
    }while ($data = fread($fp, 4096))
    {
        if (!xml_parse($xml_parser, $data, feof($fp))) 
    {
            die(sprintf("XML error: %s at line %d",
                        xml_error_string(xml_get_error_code($xml_parser)),
                        xml_get_current_line_number($xml_parser)));
        }
    }
    xml_parser_free($xml_parser);
    ?>
      

  15.   

    感谢wisword的细心回答,用preg_match_all("/ <TreeNode\s+Desc=\"(.+)\"\s+Value=\"(.+)\"\s*\/?>/",file_get_contents('demo.xml'),$rs); 取出来的结果是这样的:
    array(3) { [0]=> array(4) { [0]=> string(38) "" [1]=> string(36) "" [2]=> string(38) "" [3]=> string(42) "" } [1]=> array(4) { [0]=> string(8) "11111111" [1]=> string(8) "22222222" [2]=> string(8) "33333333" [3]=> string(8) "44444444" } [2]=> array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(3) "b-1" [3]=> string(5) "b-1-1" } } 
    可是怎么按要求取值出来呢,比如说我想找出与Value="b-1"对应的Desc的值,该怎么做呢
      

  16.   

    取Value='b-1'对应的Desc的值:
    for ($i=0;$i<count($rs[2]);$i++)
    {
       if ($r[2][$i]=='b-1')
           break;
    }
    echo $rs[1][$i];