假设$string是你接收的xml格式的字符串$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$string,$values,$tags);
xml_parser_free($parser);
if ($values["tag"] == "user")
   $uservalue = $values['value'];
if ($values["tag"] == "password")
   $pwdvalue = $values['value'];

解决方案 »

  1.   

    不太明白,能注释一下吗?
    我的解析文件用的是文件a.php的返回值echo $xml;怎么接收解析这个返回值呢?
      

  2.   

    对于简单的xml文件,可以用正规表达式解析,很方便.查看一下eregi函数吧
      

  3.   

    不是有用DOM接收解析的吗,这个怎么用,我看了些文档,说得都不是很明白
      

  4.   

    我要正确取到这些XML值,要先发送个请求,然后再进行接收解析吧?
    是不是要用到下边这些代码:
    var msg = "<?xml version='1.0' encoding='gb2312'?><company>这是测试</company>";
    xmlhttp = new ActiveXOject("Msxml2.XMLHTTP");
    xmlhttp.open("GET","test.php?msg"+msg, false);
    xmlhtp.send("");
      

  5.   

    哪位能给个完整的发送接收的例子,用xmlhttp对象发送,domxml解析。谢谢!!!
      

  6.   

    <?php
            Header("Content-type:text/xml");
            $xml = "<?xml version=\"1.0\"?>\n";
            $xml = $xml."<root>";
            $xml = $xml."<username>noname</username>\n";
            $xml = $xml."<password>666666</password>\n";
            $xml = $xml."</root>";        $parser = xml_parser_create();                             //建立一个 XML 解析器
            xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
            xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
            xml_parse_into_struct($parser,$xml,$values,$tags);        //将xml数据解析到数组中
            xml_parser_free($parser);
            print_r($values);  //打印一下$values看看,楼主你看了就知道这个数组和你的xml数据的联系了
            foreach($values as $val){             //看过上面的数组,对这段foreach程序就知道是干吗的了
                if ($val['tag'] == 'username')
                   $name = $val['value'];
                if ($val['tag'] == 'password')
                   $pwd = $val['value'];
            }
            echo "<br>username:".$name."<br>";    //显示一下看看结果
            echo "password:".$pwd;?>
      

  7.   

    谢谢啊,我先试试,你这是用的什么解析方法,不是domxml解析吧, 也要用
    var msg = "<?xml version='1.0' encoding='gb2312'?><company>这是测试</company>";
    xmlhttp = new ActiveXOject("Msxml2.XMLHTTP");
    xmlhttp.open("GET","test.php?msg"+msg, false);
    xmlhtp.send("");
    发送请求吧?
      

  8.   

    有一种方法是这样解析的,就是不知道怎么用:
    $xmldoc = xmldoc($_SERVER['HTTP_RAW_POST_DATA']);
      

  9.   

    我用的是php自己的xml函数库
    domxml不晓得没用过
    你可以看看这个
    http://www.php.net/manual/zh/ref.xml.php
    发送倒不清楚了
      

  10.   

    还有simplexml_load_file(),简单一点,但是只有php5里能用
    http://cn.php.net/manual/zh/function.simplexml-load-file.php
      

  11.   

    刚完成一个递规函数将xml解析成树状结构的数组,速度很快。
      

  12.   

    谢谢mynamesucks(seasons in the sun) ,你的代码实现了解析功能,如果要接收数据的话,要用什么命令,怎么实现呢?
      

  13.   

    接收数据?指读xml文件吗?

    $parser = xml_parser_create();前面加上
    $xml = implode("",file('test.xml'));
    test.xml指xml文件,比如
    <?xml version="1.0" ?>
      <root>
      <username>noname</username>
      <password>666666</password>
      </root>
      

  14.   

    $xml = implode("",file('test.xml'));
    这里是不是只能用.XML文件
      

  15.   

    不一定是.xml的,只要文件里的格式符合xml的就行,htm,php的都可以
      

  16.   

    不要用xmlhttp
    php通常是跑在linux上的
      

  17.   

    接受只要用file_get_content($url);就可以了
      

  18.   

    解析没问题了,接收把下边这句写在解析语句前边就行了吗,还要其他什么语句吗?
    $xml = file_get_content("http://***.***.***.***/a.php?a=3");
      

  19.   

    file_get_content()是php内建的函数
    不过在4.3以后才有
    如果版本小于4.3,可以用fopen($url,'r')和fread