一聚教程网:一个值得你收藏的教程网站

热门教程

php实现的XML操作(读取)封装类完整实例

时间:2022-06-24 20:48:05 编辑:袖梨 来源:一聚教程网

 

 代码如下 复制代码

  

  

  

    

    

    Normal|DR

    

    Wondershare Vedio Convertor

    

    Wondershare

    

    Customize|Affiliate

    

    143724583

    

    0|1

    

    

  

  

  

    

    

      

        

        11642

        

        1|0

        

        1|0

        

        Jump|Hide|Disable

        

        1|0

        

        1|0

      

      

      

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

      

      

    

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

    

        

    

  

 

封装了下读取xml操作类:

 

 代码如下 复制代码

/**

 * xml操作基类

 */

classXmlBase {

  publicfunction__construct() {

  }

  /**

   * 加载xml

   * @param string $xml xml路径或xml字符串

   * @param bool $isXmlStr 是否是xml字符串

   */

  protectedfunction_loadXml($xml,$isXmlStr= FALSE) {

    $xmlObj=newDOMDocument();

    if($isXmlStr) {

      $xmlObj->loadXML($xmlNewStr);

    }else{

      $xmlObj->load($xml);

    }

    return$xmlObj;

  }

  /**

   * 获取某个标签节点

   * @param $parentnode 父节点

   * @param $tagName 标签名 // 不区分大小写

   * @return node 节点对象

   */

  protectedfunction_getNode($parentNode,$tagName) {

    $childNodes=$this->_getNodes($parentNode);

    foreach($childNodesas$node) {

      $nodeName=strtolower(trim($node->nodeName));

      $tagName=strtolower(trim($tagName));

      if($nodeName==$tagName) {

        return$node;

      }

    }

    returnNULL;

  }

  /**

   * 获取xml子节点

   * @param $parentNode 父节点

   * @param $tagName 子节点标签 // 不区分大小写

   */

  protectedfunction_getNodes($parentNode,$tagName='') {

    $nodes=array();

    if($tagName) {

      $nodes=$this->_getSpecialNodes($parentNode,$tagName);

    }else{

      $nodes=$this->_getAllNodes($parentNode);

    }

    return$nodes;

  }

  /**

   * 获取所有的节点

   * @param $parentNode 父节点

   */

  protectedfunction_getAllNodes($parentNode) {

    $nodes=array();

    foreach($parentNode->childNodesas$node) {

      if($node->nodeType == 1) {

        $nodes[] =$node;

      }

    }

    return$nodes;

  }

  /**

   * 获取指定标签的节点

   * @param $parentNode 父节点

   * @param $tagName 节点名称

   */

  protectedfunction_getSpecialNodes($parentNode,$tagName) {

    $nodes=array();

    $tagName=strtolower(trim($tagName));

    foreach($parentNode->childNodesas$node) {

      $nodeName=strtolower(trim($node->nodeName));

      if($node->nodeType == 1 &&$nodeName==$tagName) {

        $nodes[] =$node;

      }

    }

    return$nodes;

  }

  /**

   * 获取节点属性值

   *

   * @param $node 节点对象

   * @param $attrName 节点名字 // 不区分大小写

   */

  protectedfunction_getAttr($node,$attrName) {

    $attrName=strtolower($attrName);

    foreach($node->attributesas$attr) {

      $nodeName=strtolower($attr->nodeName);

      //$nodeValue = strtolower($attr->nodeValue);

      $nodeType=strtolower($attr->nodeType);

      if($nodeType== 2 &&$nodeName==$attrName) {

        unset($attrName,$nodeName,$nodeType);

        return$attr->nodeValue;

      }

    }

    return'';

  }

}

?>

 

热门栏目