Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29334635
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类:

2009-05-22 10:58:29

1.PHP查询MYSQL中的记录并生成相应的XML接口文件

$hostname      = "localhost";

$usr        = "root";

$pw               = "321";

$dbname        = "db";

$id                 = $_GET["id"];

echo "";

if(!is_numeric($id)){

       echo "传入参数有问题。 ]]>";

       exit;

}

$sql        = "select * from host where id=".$id;

$link              = mysql_connect($hostname,$usr,$pw);

if(!$link){

       echo "数据库连接异常!请检查数据库连接 ]]>";

       exit;

}else{

       mysql_query("set names gb2312");

       mysql_select_db($dbname,$link);

       $result = mysql_query($sql,$link);

       if(mysql_num_rows($result) == 0) {

              echo "数据库没有信息]]>";

              die();

       } else {

              $str = "";

              while($row  = mysql_fetch_array($result)) {

                            $id          = Trim($row["id"]);

                            $host      = Trim($row["host"]);

                            $str  = $str."";

                            $str  = $str.""."";

                            $str  = $str.""."";

                            $str  = $str."";

                 }

                 echo $str;

       }

}

mysql_free_result($result);

mysql_close($link);

?>

2.PHP读取XML数据文件并解析出来项中的数据

  $doc = new DOMDocument();

  $doc->load( '' ); 请求的URL包含XML

  $books = $doc->getElementsByTagName( "row" );

  foreach( $books as $book )  {            //遍历全部的数组数据

         $authors = $book->getElementsByTagName( "id" );

         $author = $authors->item(0)->nodeValue; 

         $publishers = $book->getElementsByTagName( "host" );

         $publisher = $publishers->item(0)->nodeValue; 

         echo "$publisher - $author \n";

  }

附:另一种方法解析 不过没有成功 先贴代码

    /****************************************
    *采用parse方法进行解析调用PHP内置的函数
    *整理总结
    parser是php内置的一个用来处理xml的解析器,它的工作由三个事件组成:
    起始标签、 读取数据、结束标签。
    也就是说在对xml进行处理的时候每当遇到起始标签、
    数据和结束标签的时候函数会做相应的动作来完成对xml数据的转换。
    ******************************************/
?>
    //开始定义好解析函数
    $name        = false;
    $position    = false;
    function startElemnt($parser_instance,$element_name,$attrs) {
        //处理起始标签事件函数
        global $name,$position;
        if($element_name == "name") {  //表示标签如果是NAME则如下处理
            $name        = true;
            $position    = false;
            echo "名字";
        }
        if($element_name == "position") {
            $name        = false;
            $position    = true;
            echo "位置";
        }
    }
    function characterData($parser_instance,$xml_data) {
        //读取数据时的函数
        global $name,$position;
        if($position)
            //因为之前调用过了标签开始处理函数会处理全局的变量值的
            echo $xml_data."
";
        if($name)
            echo $xml_data."
";
    }
    function endElement($parser_instance,$element_name){
        global $name,$position;
        $name        = false;
        $position    = false;
    }

    $parser        = xml_parser_create();  //创建一个parser解析器
    xml_set_element_handler($parser,"startElement","endElement");//设立标签触发函数
    //我的理解:2 程序遇到了error的时候就触发startElement函数
    xml_set_character_data_handler($parser,"characterData");
    //我的理解:2 程序遇到了里面的2时如何进行读取操作
    $xml_file    = "1.xml";
    $filehandler= fopen($xml_file,"r"); //打开XML文件
    while($data = fread($filehandler,9999)){
        try{
            if(!xml_parse($parser,$data,feof($filehandler))){
                die(sprintf("xml error:%s at line %d",xml_error_string(xml_get_error_code($parser)),xml_get_current_line_number($parser)));
            }
        }catch(Exception $e){
            echo "异常信息:".$e->getMessage();
        }
    }
    //我的理解:开始解析此XML文档 每次取4096个字节处理
    fclose($filehandler);
    xml_parser_free($parser); //关闭解析器
    ?>


提示 有问题出现的。打不到事件处理函数 !郁闷呀



阅读(1715) | 评论(1) | 转发(0) |
0

上一篇:异常处理

下一篇: 用Python实现数据库编程

给主人留下些什么吧!~~

xgdd19872009-07-10 09:44:03

很好...