喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: PHP实现JAVA XStream  
 
evicn (evicn)
注册会员
Rank: 2
初级会员



UID 8199
精华 0
积分 65
帖子 60
金钱 65 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2001-5-11
来自 gz
状态 离线
PHP实现JAVA XStream

PHP实现JAVA的XStream

作用: 希望两种语言能更好的连接.. ( 相关其它: XML, JAVA, Hessian )


<?


// 目前实现了 Param, Map

function LogText($str){
    return 
$str;
}

class 
XStream
{
    var 
$objName;
    var 
$objParam = array ();
    var 
$objMap ;

    
### 取数据 ###
    
function readXMLParam($file){
        try {
            
$doc = &new DOMDocument();
            
$doc->load($file);

            
$objNames $doc->getElementsByTagName$this->objName );

            foreach (
$objNames as $objName) {
                for(
$i=0;$i<count($this->objParam);$i++){
                    
$returnParamsName $this->objParam[$i];
                    
$objParams $objName->getElementsByTagName($returnParamsName);
                    
$returnParams [$returnParamsName] =  $objParams->item(0)->nodeValue;
                }
                return 
$returnParams;
            }

            
/*
            $doc = &new DOMDocument();
            $doc->load($file);
            
            
            $agentAgentInfos = $doc->getElementsByTagName( "agent.AgentInfo" );
            
            foreach ($agentAgentInfos as $agentAgentInfo) {
            $agentIds = $agentAgentInfo->getElementsByTagName( "agentId" );
            $agentId = $agentIds->item(0)->nodeValue;
            echo $i."=I:".$agentId; echo "<BR>n";

            $winCommissions = $agentAgentInfo->getElementsByTagName("winCommissions");
            foreach($winCommissions as $winCommission){
            $entrys = $winCommission->getElementsBYTagName("entry");
            $j = 0;
            for($k=0;$k<$entrys->length;$k++){
            $entry = $entrys->item($k);
            $strings = $entry->getElementsByTagName("string");
            echo $j."=J:".$strings->item(0)->nodeValue; echo "<br>n";
            $j++;
            }
            }
            $i++;
            }
            */

        
}catch (Exception $e){
            
LogText($e->getMessage());
        }

    }

    
### 取数据 ###
    
function readXMLMap($file){
        try {
            
$doc = &new DOMDocument();
            
$doc->load($file);

            
$objNames $doc->getElementsByTagName$this->objName );
            
$objMapArr $this->objMap;
            foreach (
$objNames as $objName) {
                
### objMap 存在
                
if(is_array($objMapArr)){
                    for(;
$keyI=key($objMapArr);next($objMapArr)){
                        
$returnObjMapName_i $keyI;
                        
$objMaps $objName->getElementsByTagName($keyI);
                        foreach(
$objMaps as $objMap){
                            
$entrys $objMap->getElementsBYTagName("entry");
                            for(
$j=0;$j<$entrys->length;$j++){
                                
$entry $entrys->item($j);
                                for(
$k=0;$k<count($objMapArr[$keyI][$j]);$k++){
                                    
$returnObjMapName_k $objMapArr[$keyI][$j][$k];
                                    
$returnObjMapBodys $entry->getElementsByTagName($returnObjMapName_k);
                                    
$returnObjMaps[$returnObjMapName_i][$j][$returnObjMapName_k] = $returnObjMapBodys ->item(0)->nodeValue;
                                }
                            }
                        }
                    }


                }
            }
            return 
$returnObjMaps;
        }catch (
Exception $e){
            
LogText($e->getMessage());
        }

    }

    
### 写数据 ###



}

####### TEST #######

class TestXStream{
    function 
testReadXML(){
        
$xstream = &new XStream();
        
$file "./test/getInfo.xml";
        
$objName "agent.AgentInfo";

        
$xstream->objName $objName;

        
### 测试Param ###
        
$objParam = array("agentId","agentRole","credit");
        
$xstream->objParam$objParam;
        
print_r($xstream->readXMLParam($file));

        
### 测试Map ###
        
$objMap = array(
        
"winCommissions" => array("0"=>array("string","big-decimal"),"1"=>array("string","big-decimal")),
        
"loseCommissions" => array("0"=>array("string","big-decimal"),"1"=>array("string","big-decimal")),
        
"shares" => array("0"=>array("string","big-decimal"),"1"=>array("string","big-decimal"))
        );
        
$xstream->objMap $objMap ;
         
print_r($xstream->readXMLMap($file));
         
    }
}

### Main() ###
$testXStream = &new TestXStream();
$testXStream->testReadXML();

?>
[ 本帖最后由 evicn 于 2007-3-9 03:17 AM 编辑 ]
2007-3-9 03:09 AM#1
查看资料  访问主页  发短消息  QQ  ICQ 状态  顶部
 
evicn (evicn)
注册会员
Rank: 2
初级会员



UID 8199
精华 0
积分 65
帖子 60
金钱 65 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2001-5-11
来自 gz
状态 离线
[推荐阅读] 一个女北漂的自白:我被“包”了!


<!-- XStream 的XML -->

<agent.AgentInfo>
  <agentId>sm</agentId>
  <agentRole>SUPER_MASTER</agentRole>
  <assignedCredit>10000</assignedCredit>
  <credit>999</credit>
  <balance>91.01</balance>
  <status>ACTIVE</status>
  <winCommissions>
    <entry>
      <string>SH</string>
      <big-decimal>0</big-decimal>
    </entry>
    <entry>
      <string>SH2</string>
      <big-decimal>1</big-decimal>
    </entry>
  </winCommissions>
  <loseCommissions>
    <entry>
      <string>SH</string>
      <big-decimal>0.4</big-decimal>
    </entry>
  </loseCommissions>
  <shares>
    <entry>
      <string>SH</string>
      <big-decimal>0.9</big-decimal>
    </entry>
  </shares>
  <arrayTests>
            <string>sm</string>
          <string>SUPER_MASTER</string>
          <string>10000</string>
          <string>999</string>
          <string>91.01</string>
          <string>ACTIVE</string>
  </arrayTests>
</agent.AgentInfo>
2007-3-9 03:10 AM#2
查看资料  访问主页  发短消息  QQ  ICQ 状态  顶部
 
evicn (evicn)
注册会员
Rank: 2
初级会员



UID 8199
精华 0
积分 65
帖子 60
金钱 65 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2001-5-11
来自 gz
状态 离线
[推荐阅读] hierarchal是什么数据库?


<?
//完整版

// 可以读写

// Plesas  [email]him.tam@gmail.com[/email]

// 呵, 见没人需要, 所以……

?>
[ 本帖最后由 evicn 于 2007-3-9 12:02 PM 编辑 ]
2007-3-9 12:01 PM#3
查看资料  访问主页  发短消息  QQ  ICQ 状态  顶部
 
haojiejing
新手上路
Rank: 1



UID 73279
精华 0
积分 0
帖子 8
金钱 0 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-5-12
状态 离线
[推荐阅读] 公共function操作数据库
好东西啊。分享下吧。谢谢楼主
2007-6-16 10:11 PM#4
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.033958 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP