新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> XML编辑器,XML解析器,XML开发环境
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML工具及XML开发环境 』 → 请问php怎么解析burlap(各位高手请进) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 10703 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 请问php怎么解析burlap(各位高手请进) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     dangki 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:52
      门派:XML.ORG.CN
      注册:2006/8/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给dangki发送一个短消息 把dangki加入好友 查看dangki的个人资料 搜索dangki在『 XML工具及XML开发环境 』的所有贴子 引用回复这个贴子 回复这个贴子 查看dangki的博客楼主
    发贴心情 请问php怎么解析burlap(各位高手请进)

    burlap内容如下:
    <burlap:call>
    <method>setAdDetail</method>
    <map>
    <type>com.netease.bid.client.model.Ad</type>
    <string>id</string><long>-888</long>
    <string>title</string><string>888</string>
    <string>desc1</string><string>888</string>
    <string>desc2</string><string>888</string>
    <string>url</string><string>http://www.888.com</string>
    <string>dispUrl</string><string>http://www.888.com</string>
    <string>area</string><string>1</string>
    <string>areas</string><list><length>2</length><int>16</int><int>27</int></list>
    <string>appearTime</string><int>1</int>
    <string>disappTime</string><int>12</int>
    <string>dayBudget</string><string>16</string>
    <string>keywords</string><map><type></type>
    <long>-58810201</long>
    <map>
    <type>com.netease.bid.client.model.Keyword</type>
    <string>id</string><long>-58810201</long>
    <string>name</string><string>原始关键词8</string>
    <string>status</string><int>0</int>
    <string>mode</string><int>0</int>
    <string>clickCost</string>
    <map>
    <type>java.math.BigDecimal</type><string>value</string><string>10</string>
    </map>
    <string>topPrice</string><string>0.3</string>
    </map>
    <long>-52610072</long>
    <map>
    <type>com.netease.bid.client.model.Keyword</type>
    <string>id</string><long>-52610072</long>
    <string>name</string><string>原始关键词88</string>
    <string>status</string><int>0</int>
    <string>mode</string><int>0</int>
    <string>clickCost</string>
    <map>
    <type>java.math.BigDecimal</type><string>value</string><string>11</string>
    </map>
    <string>topPrice</string><string>0.3</string>
    </map>
    <long>-79731473</long>
    <map>
    <type>com.netease.bid.client.model.Keyword</type>
    <string>id</string><long>-79731473</long>
    <string>name</string><string>原始关键词888</string><string>status</string><int>0</int>
    <string>mode</string><int>0</int>
    <string>clickCost</string>
    <map>
    <type>java.math.BigDecimal</type><string>value</string><string>12</string>
    </map><string>topPrice</string><string>0.3</string>
    </map></map>
    <string>status</string><int>1</int>
    </map>
    </burlap:call>

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/26 10:19:00
     
     fantix 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2007/5/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fantix发送一个短消息 把fantix加入好友 查看fantix的个人资料 搜索fantix在『 XML工具及XML开发环境 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fantix的博客2
    发贴心情 
    布尔型
    32位整型
    64位长整型
    64位双精度浮点型
    ISO-8609日期类型
    UTF-8编码的字符串类型
    UTF-8编码的XML
    base64二进制数据
    远程对象
     两种组合类型:
    list 用于表示列表与数组
    map 用于表示对象与哈希表
     最后,还有两种特殊的类型:
    null 表示空指针类型
    ref 表示共享的或循环的对象引用
     下面详细说明每一种类型的SML描述语法。

    <null> 空指针类型
     null表示了一个空指针。根据SML语言定义,单独的<null>标记是非法的,正确的null标记应该有打开标记与关闭标记。<null>标记可以用来替换以下任何标记:
    <string>
    <xml>
    <base64>
    <list>
    <map>
    <remote>

    <null></null> 

    <boolean> 布尔类型
     布尔类型的值使用0与1来表示。

    <boolean>0</boolean> 

    <int> 32位整型
     32位有符号整数。

    <int>-32132</int> 

    <long> 64位长整型
     64位有符号长整数。

    <long>1000000000</long> 

    <double> 64位双精度浮点型
     64位IEEE浮点数。

    <double>1234.9431e12</double> 

    <string> UTF-8编码的字符串类型
     由16位Unicode字符组成的的字符串,使用UTF-8编码。UTF-8编码服从SML语言规范。相似地,只有四个转义字符:“&#xx;”、“&lt;”、“&gt;”与“&amp;”,并且所有的空白都是有效的。

    <string>Escape the less than symbol as &lt; or
    using the numeric escape &
    Here goes some chinese characters:
    \u9752\u5c9b\u51fa\u53e3\u9000\u7a0e\u670d\u52a1\u7f51
    </string> 

    <xml> UTF-8编码的XML
     由16位Unicode字符组成的XML文档,使用UTF-8编码,服从<string>的规范。像“<”这样的特殊字符,必须使用转义字符。只有四个可用的转义字符:“&#xx;”、“&lt;”、“&gt;”与“&amp;”,并且所有的空白都是有效的。

    <xml>
    &lt;top&gt;
      &lt;body test='foo'/&gt;
    &lt;/top&gt;
    </xml> 
     注意:因为这种规范并没有定义语言映射,所以可以随意实现读取<xml>标记内容,比如返回字符串。

    <base64> base64二进制数据
     base64编码的二进制数据流。Base64字符串中,任何单元之后可以有空白,但是单元之中不允许由空白。

    <base64>
    zxc9Z9
    m2z8==
    </base64> 

    <list> 列表与数组
     这种类型表示一个有序的列表,如同一个数组。在<list>中,使用<type>标记描述列表元素的类型,使用<length>元素说明列表种元素的个数。<type>元素与<length>元素都是必须的,但是可以为空。如果<length>元素是空的,那么解析器将在</list>之前,根据列表实际拥有元素的个数来确定<length>的值。
     <list>定义为:list = (type, length, (%object;)*)
     每一个<list>条目都被添加到引用列表中,详见<ref>元素。
     <list>标记还可以被<null>或者<ref>来represent,所以解析器必须做好准备,以便识别这三种的任意一种。

    Java中int[]类型的序列化结果 
    <list>
      <type>[int</type>
      <length>3</length>
      <int>0</int>
      <int>1</int>
      <int>2</int>
    </list> 
    Java中ArrayList类型的序列化结果 
    <list>
      <type></type>
      <length>3</length>
      <int>0</int>
      <double>1.3</double>
      <string>foobar</string>
    </list> 

     注意:本规范没有说明什么样的<list>标记值属于有效值,//TODO:

    <map> 对象与哈希表
     <map>表示序列化的对象与哈希表(Hashtable)。在<map>中,由<type>元素来描述<map>的类型。对与对象,在<map>中表示了从成员变量名,到它们的值的所有信息,<type>表示了这个对象的类型。
     <map>定义为:map ::= (type, ((%object;), (%object;))*)
     <type>元素是强制性的,尽管它的值也可以是空。对与对象来说,必须忽略无法识别的key。
     每一个<map>都被添加到引用列表中,详见<ref>元素。
     <map>标记也可以被<null>或者<ref>来represent。

    一个普通Java类实现了Serializable接口 
    public class Car implements Serializable {
        String model = "Beetle";
        String color = "aquamarine";
        int mileage = 230431;

    该类对象的序列化结果 
    <map>
      <type>com.caucho.test.Car</type>

      <string>model<string>
      <string>Beetle</string>

      <string>color<string>
      <string>aquamarine</string>

      <string>mileage<string>
      <int>230431</int>
    </map> 

    创建一个Java稀疏数组 
    map = new HashMap();
    map.put(new Integer(1), "fee");
    map.put(new Integer(75), "fie");
    map.put(new Integer(932), "foe"); 
    该对象的序列化结果 
    <map>
      <type>java.util.HashMap</type>

      <int>1<int><string>fee</string>
      <int>75<int><string>fie</string>
      <int>932<int><string>foe</string>
    </map> 

    <ref> 共享的或循环的对象引用
     <ref>的值是一个整数引用,指向了前面的一个<list>或是<map>实例。随着每一个<list>与<map>从输入流中被读出,它们都被依次用整数标记。后面的<ref>可以引用到前面的对象。
     <ref>定义为:ref ::= #CDATA
     <ref>可以引用尚未读取完的对象。比如,一个递归定义的列表可以在整个<list>读取完之前,引用这个列表本身。
     一种可行的实现方案是:当读取每一个<map>和<list>时,将它们添加到一个数组中。<ref>标记将从数组中返回相应的对象。为了支持这种递归的循环结构,实现方案中应该立即存储<map>或是<list>,不要等到填满了这些对象的内容之后。
     每一个<list>或是<map>在处理时都要存入一个数组,<ref>将会引用存储的对象,第一个对象的索引是“0”。
     
    一个Java循环列表 
    list = new LinkedList();
    listhead = 1;
    list.tail = list; 
    该列表的序列化结果 
    <map>
      <type>LinkedList</type>
      <string>head</string><int>1</int>
      <string>tail</string><ref>0</ref>
    </map> 

     注意:<ref>仅仅针对与<map>与<list>,<string>与<base64>不能共享引用。

    <remote> 远程对象
     仅适用于EJB,不讨论。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/17 10:59:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML工具及XML开发环境 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/27 15:03:10

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms