首页 > 编程技术 > php

VML绘图板②脚本--VMLgraph.js、XMLtool.js

发布时间:2016-11-25 16:55

脚本
*************
* VMLgraph.js
*************
var xo=0;
var yo=0;
var ox=80;
var oy=20;
var dx=0;
var dy=0;
var drawKey = false;
var itemID = 0;
var ShapeItemNum = 0;
var ShapeItemX = 0;
var ShapeItemY = 0;
var CurveItemNum = 0;
var NodeDelete = false;
var ToolBarNum = 2; // 预置的工具编号
var gradientX = -1;
function cursor(k) {
    xo = event.clientX - ox;
    yo = event.clientY - oy;
    if(k && xo>=0 && yo>=0)
    oxy.innerHTML = xo+","+yo;
    else
    oxy.innerHTML = "";
    if(drawKey) {
    paint();
    view.innerHTML = tree(canvas.documentElement,0);
    }
}
function setOverColor(v) {
    if(! NodeDelete) return;
    v.myColor = v.strokecolor;
    if(v.strokecolor == "red")
    v.strokecolor='#000000';
    else
    v.strokecolor='#ff0000';
}
function setOutColor(v) {
    if(! NodeDelete) return;
    v.strokecolor = v.myColor;
    view.innerHTML = tree(canvas.documentElement,0);
}
function deleteNode(v) {
    if(! NodeDelete) return;
    var id = v.id;
    for(i=0;i<canvas.selectNodes("/*//*").length;i++) {
    var node = canvas.selectNodes("/*//*")[i];
    if(node.getAttribute("id") == id) {
        canvas.documentElement.childNodes[0].removeChild(node);
用PHP工具包expat解析XML
--------------------------------------------------------------------------------

作者:BUILDER.COM    
如今人人鼓吹XML是Web开发者最好的朋友,有了XML的帮忙,后者即可轻松地格式化和显示来自几乎任何数据源的数据。但是,对动态内容而言,格式优良的数据却还远远谈不上达到理想状态。大多数的Web开发者都会告诉你,今天的网络上没有动态内容怎么能行!问题是:“到底该如何用XML创建动态内容呢?”
答案是用动态内容处理语言来解析XML,比如用PHP或者Perl等,从理论上说,这类程序语言是可以出于各种目的利用XML的。无非是采用一些能解析XML的工具包而已。James Clark就提供了一种名叫expat的工具包。expat XML工具包用C语言解析XML,令PHP与XML轻松共舞。
PHP是一种专为Web设计的绝佳脚本语言。XML是表示Web内容的标准。两者联手真是要多美有多美!
下面我会给读者演示一个简单的示例,通过这个例子即可说明如何用PHP把XML文档解析为HTML。然后我会介绍一些PHP的其他XML概念。用PHP解析XML很简单,操作起来很直观但却需要对细节有所解释。一旦真正掌握了应用的要领,你肯定会惊奇自己怎么不早想到把它们俩拢一块儿来。
概述
PHP用expat这种XML工具包,通过C语言来解析XML。这个工具包的函数集同Perl XML解析所采用的函数集是一样的,此外,这种工具包还是事件驱动型的解析器。这就是说,expat把每个XML标签或者新一行代码当作事件的起始,而事件就是函数的触发器。Expat的安装非常简单,如果你正在用着Apache Web服务器,那么你可以在PHP XML参考页上找到安装和下载指南。
用PHP解析XML的基本任务是这样的:首先,创建XML解析器的一个实例。接着,定义处理触发事件的函数,比如开始或者结束标签等。随后,定义实际意义的数据处理程序。最后,打开XML文件,读取文件数据并解析数据。之后关闭文件释放XML解析器。
你瞧,就像我说的那样,这套操作过程没什么特别的。不过,在我们讨论具体的示例之前先了解以下的一些警示:
Expat不对XML进行检验。这意味着只要XML文件格式正确——所有的元素嵌套得当、开始和关闭标签没有任何错误——它就会被解析。Expat可不管XML是否遵守XML文件头中引用的标准或者定义。
Expat把XML标签全部转换为大写字母。如果你的脚本在标签名和其他内容上大小写字母混用可就要小心了。
PHP是在magic quotes设置启用的情况下编译而成,那么复杂的XML文件不会得到正确的解析。要是magic quotes不是默认设置,你就当我没说。
原创:
作者:xiaocon
邮箱:xiaocon@21cn.com
转载请注明出处
一 php与XML、XSLT、Mysql的结合运用,安装篇
    经常看到有用户问一些关于php与XML、数据库结合运用的贴子,也经常看到一些初学者
    把php代码与HTML代码混写到一起,然后在出错的时候找不到错误,急得团团转,下面我就给大
    家讲一下如何用XML技术将HTML代码和PHP程序分离,当然,分离的技术有好多种,比如PEAR中
    的IT模板.
    总的来说,个人认为使用XML技术是最方便的,废话不多说了,我们言归正传,
    讲一下在win2000下的安装
    使用php中的xml与xslt要用到一些dll库,
    extension=php_domxml.dll     //操作XML的函数库
    extension=php_iconv.dll    //转码用的,比如将GB2312的转成UTF-8的
    extension=php_xslt.dll     //XSLT的函数库
    
    使用上面这三个库的时候,你要将php安装目录下的dlls目录加入到路径中,否则会找不到
    这些类库的
    
    在下面的课程中,我们会用到php中的PEAR类库,主要用了DB类库,Sql2XML类库,大家可以在
    pear.php.net上下载最新的版本
    下载完上面二个类库以后,大家最好在php.ini中设置一下
    include_path = ".;d:phppear"
    
    d:phppear    是我的pear的安装路径
    
    设置完以后,重新启动一下机器,否则因为路径找不到而导致Apache启动不正常,无法正常使用
    
    
    至此要使用PHP中的XML和XSLT的设置就完成了,是不是很简单:)
    使用Linux的用户可以到
主控
***************
* VMLgraph.htm
***************
<html>
<xmlns:v="urn:schemas-microsoft-com:vml" />
<head>
<meta http-equiv="Content-type" content="text/html; charset=gb2312">
<title>VML绘图板</title>
<style>
v:* { behavior: url(#default#VML); }
td { font-size:9pt; }
</style>
</head>
<script" width=100% src="VMLgraph.js"></script>
<script" width=100% src="XMLtool.js"></script>
<script language="JavaScript">
// 钩子函数,当选择了工具时被调用
function hooke() {
}
</script>
<body onLoad="init()">
<table>
<tr>
    <td width=61 valign=top>
     <span id="toolbox"></span><br>
     <span id="linebox"></span><br>
     <span id="opacity1"></span><br>
    </td>
    <td valign=top>
     <span id="view" align=left valign=top>
    你的浏览器可能不支持VML!请使用IE5+。需要xml3.0支持。<br>
    最佳效果出现在IE6。
     </span>
    </td>
    <td valign=top>
     <input type=button value="刷新" style="height:16; border:1px solid #C0C0C0;" onClick="view.innerHTML=tree(canvas.documentElement,0)">
     <input type=button value="保存" style="height:16; border:1px solid #C0C0C0;" onClick="saveXML()"><br><br>
     <span id="gradientBox"></span><br>
    <?php    
    require_once "DB.php";       //PEAR中的数据库处理类
    $dataType = "mysql" ;       //数据库类型
    $user = "root";          //用户名
    $pass = "abcd" ;           //密码
    $host="202.96.215.200";       //Mysql数据库服务器地址
    $db_name = "test";           //数据库名
    $dsn="$dataType://$user:$pass@$host/$db_name";     //连接数据库的DNS配制
    $db = DB::connect($dsn);        //连接数据库
    if (DB::isError($db))
    {       
        die ($db->getMessage());    //连接失败,输出出错信息
    }
    
    //下面二个是公共的函数
    /**
     * 读取xsl文档
     *
     * @param String $filename - xsl文件的名称
     * @return string
     */
    function readXsl($filename)
    {    
        if(false==file_exists($filename))
        {
       echo "要读取的文件<font color='red'>$filename</font>不存在</br />";    
标签:[!--infotagslink--]

您可能感兴趣的文章: