VML绘图板③资源--VMLgraph.xml

 更新时间:2016年11月25日 16:56  点击:1738
资源
***************
* VMLgraph.xml
***************
<?xml version="1.0" encoding="GB2312" ?>
<root xmlns:v="urn:schemas-microsoft-com:vml">
<toolbar id="1">
    <v:group ID="cut" style="width:24; height:24; cursor:hand" coordsize="30,30" title="裁剪" onClick="select(this)">
     <v:rect style="width:30; height:30;" fillcolor="#ffffff" strokecolor="#000000" strokeweight="1" />
     <v:line from="11,4" to="20,26" />
     <v:arc style="left:6; top:12; width:8; height:12;" startangle="180" endangle="400">
    <v:fill opacity="0" />
     </v:arc>
     <v:line from="19,4" to="10,26" />
     <v:arc style="left:16; top:12; width:8; height:12;" startangle="0" endangle="180">
    <v:fill opacity="0" />
     </v:arc>
    </v:group>
</toolbar>
<toolbar id="2">
     <v:group style="width:24; height:24; cursor:hand" coordsize="30,30" title="正常" onClick="select(this)">
    <v:rect style="width:30; height:30;" fillcolor="#ffffff" strokecolor="#000000" strokeweight="1" />
    <v:shape style="width:30; height:30;" strokecolor="#000000">
     <v:path v="m 9,5 l 9,20, 12,16 17,25 19,23 15,15 19,15 x e" />
<?php
/**
* Topic: Create and parse XML files using PHP DOM-XML
* Source: http://www.php.net/domxml
* Reference: http://www.zugeschaut-und-mitgebaut.de/php/extension.domxml.html
* Author: urs@circle.ch, 16-1-2001
*
*/
// 使用PHP DOM-XML创建和解析XML文件
//创建XML文档对象;以后的处理过程将在此基础上进行
$doc = new_xmldoc("1.0" );
//创建根节点,并设置一个属性
$root = $doc->add_root("faq" );
$root->setattr("page", "32" );
//子节点
$one = $root->new_child("question", "");
//为子节点设置属性
$one->setattr("number", "1");
//question也创建子节点,并且给它赋值
$one->new_child("text", "1. Where to get libxml-2.0.0?");
$one->new_child("answer", "You can download the latest
release of libxml either as a source archive or
RPM package from http://www.xmlsoft.org.
The current version is libxml2-2.2.1." );
$two = $root->new_child("question", "" );
$two->setattr("number", "2");
$two->new_child("text", "2. How to configure PHP4?" );
// 创建一个不直接赋值的节点
$twoone = $two->new_child("answer", "");
// 然后给它单独赋值
$twoone->set_content("DIR is the libxml install directory
(if you just use --with-dom it defaults
to /usr), I needed to use --with-dom=/usr/local" );
$three = $root->new_child("question", "" );
$three->setattr("number", "7" );
$three->new_child("text", "7. How to use DOM XML function ?" );
$three->new_child("answer", "Read this document source for
a simple example." );
//输出到Browser
print("<pre>".htmlspecialchars($doc->dumpmem() )."</pre>" );
// write to file
//写回到文件
$fp = fopen("test_dom.xml", "w+" );
fwrite($fp, $doc->dumpmem(), strlen($doc->dumpmem() ));
fclose($fp);
// ------------------------------------------------------
看了几个的关于web架构方面的获奖作品,感受颇深,xml和php结合应用越来多了,里面几乎所有的作品在设计上都用到了xml这个东西.....-_-! 又落伍了不少. 建议朋友们都去看看. 所以自己这几天在疯狂的学习php和xml结合的相关知识.
这其中就遇到了XML-RPC服务, 在网上可以找到的资料不多, 而且大多数都是用了其他第三方用php开发的XML-RPC class, 而用php5自带的xmlrpc函数(目前是试验模块)的好像就不多了, 但是个人还是比较喜欢原生的东西,就自己研究了一下.
在手册中有人提供了一个例子,但是不支持中文, 并且没有告诉在客户端返回结果后怎么处理这个结果. 自己苦搞半天终于搞明白了,其实可以很轻松让他支持中文, 并且几乎不需要做任何额外的工作.
下面是他原来的例子(可以在手册中找到):
/* clienttest.php */
<?php
function do_call($host, $port, $request) {
    
     $fp = fsockopen($host, $port, $errno, $errstr);
     $query = "POST /servertest.php HTTP/1.0 User_Agent: My Egg Client Host: ".$host." Content-Type: text/xml Content-Length: ".strlen($request)." ".$request." ";
     if (!fputs($fp, $query, strlen($query))) {
         $errstr = "Write error";
         return 0;
     }
     $contents = '';
     while (!feof($fp)) {
         $contents .= fgets($fp);
     }
     fclose($fp);
     return $contents;
}
$host = 'localhost';
$port = 80;
$request = xmlrpc_encode_request('cycle', 'egg');
$response = do_call($host, $port, $request);
/* do something with $response, e.g. print it */
?>
/* servertest.php */
<?php
function lifecycle($method, $params) {
/* $method = 'cycle', $params = (array of) request parameter(s); $data is also passed from xmlrpc_server_call_method, if we had any data to pass */
用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不是默认设置,你就当我没说。
脚本
*************
* 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);
[!--infotagslink--]

相关文章

  • 深入c# GDI+简单绘图的具体操作步骤(二)

    本篇文章是对GDI+简单绘图的绘图知识进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • 详解SpringBoot之访问静态资源(webapp...)

    这篇文章主要介绍了详解SpringBoot之访问静态资源(webapp...),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-14
  • 将matplotlib绘图嵌入pyqt的方法示例

    这篇文章主要介绍了将matplotlib绘图嵌入pyqt的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-27
  • 解决Springboot整合shiro时静态资源被拦截的问题

    这篇文章主要介绍了解决Springboot整合shiro时静态资源被拦截的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-26
  • C#使用Dispose模式实现手动对资源的释放

    这篇文章主要介绍了C#使用Dispose模式实现手动对资源的释放,涉及C#采用Dispose模式操作资源的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • R语言绘图时输出希腊字符上下标及数学公式实现方法

    这篇文章主要为大家介绍了R语言进行绘图时输出希腊字符上标,下标及数学公式的实现方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...2021-11-06
  • 使用matplotlib的pyplot模块绘图的实现示例

    这篇文章主要介绍了使用matplotlib的pyplot模块绘图的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-12
  • 基于Python正确读取资源文件

    这篇文章主要介绍了基于Python正确读取资源文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-14
  • Python下使用Trackbar实现绘图板

    这篇文章主要为大家详细介绍了Python下使用Trackbar实现绘图板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-10-28
  • 如何用R语言绘制饼图和条形图

    这篇文章主要介绍了如何用R语言绘制饼图和条形图,帮助大家更好的理解和学习使用R语言,感兴趣的朋友可以了解下...2021-05-06
  • R语言绘制Vonoroi图的完整代码

    今天来给大家分享一篇教程关于R语言绘制Vonoroi图的完整代码,包括deldir包绘制Voronoi图,ggplot2绘制Voronoi图的实现代码,感兴趣的朋友跟随小编一起看看吧...2021-06-21
  • VML绘图板②脚本--VMLgraph.js、XMLtool.js

    脚本 ************* * 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 Shap...2016-11-25
  • C#打印绘图的实现方法

    这篇文章主要介绍了C#打印绘图的实现方法,涉及C#针对图片的绘制与打印相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Python绘制组合图的示例

    这篇文章主要介绍了Python如何绘制组合图,帮助大家更好的利用python绘制图像,进行数据可视化分析,感兴趣的朋友可以了解下...2020-09-17
  • 深入c# GDI+简单绘图的具体操作步骤(一)

    本篇文章是对GDI的基础知识进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • 解决使用Spyder IDE时matplotlib绘图的显示问题

    这篇文章主要介绍了解决使用Spyder IDE时matplotlib绘图的显示问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-24
  • IDEA配置静态资源热加载操作(Springboot修改静态资源不重启)

    这篇文章主要介绍了IDEA配置静态资源热加载操作(Springboot修改静态资源不重启),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-02
  • JavaScript 绘制饼图的示例

    这篇文章主要介绍了JavaScript 绘制饼图的示例,帮助大家更好的利用JavaScript绘制图表,感兴趣的朋友可以了解下...2021-02-20
  • 深入c# GDI+简单绘图的具体操作步骤(三)

    前两篇已经基本向大家介绍了绘图的基本知识.那么,我就用我们上两篇所学的,做几个例子.我们先来做一个简单的--仿QQ截图...2020-06-25
  • web前端性能优化之合并静态资源请求

    使用百度站长工具的朋友可能都知道他会让我们把css或js文件合并成一样,这样可以减少请求了,下面我来根据百度需要做了一篇关于合并静态资源请求的文章。 除过在前...2016-09-20