php実装のXML操作(読み出し)パッケージクラス完全インスタンス

9502 ワード

この例ではphp実装のXML操作(読み出し)パッケージクラスについて述べる.皆さんの参考にしてください.具体的には以下の通りです.



  
  
  
    
    
    Normal|DR
    
    Wondershare Vedio Convertor
    
    Wondershare
    
    Customize|Affiliate
    
    143724583
    
    0|1
    
    
  
  
  
    
    
      
        
        11642
        
        1|0
        
        1|0
        
        Jump|Hide|Disable
        
        1|0
        
        1|0
      
      
      
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
      
      
    
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
  



xml操作クラスをカプセル化して読み込みます.

loadXML($xmlNewStr);
    } else {
      $xmlObj->load($xml);
    }
    return $xmlObj;
  }
  /**
   *         
   * @param $parentnode    
   * @param $tagName     //       
   * @return node     
   */
  protected function _getNode($parentNode, $tagName) {
    $childNodes = $this->_getNodes($parentNode);
    foreach ($childNodes as $node) {
      $nodeName = strtolower(trim($node->nodeName));
      $tagName = strtolower(trim($tagName));
      if ($nodeName == $tagName) {
        return $node;
      }
    }
    return NULL;
  }
  /**
   *   xml   
   * @param $parentNode    
   * @param $tagName       //       
   */
  protected function _getNodes($parentNode, $tagName = '') {
    $nodes = array();
    if ($tagName) {
      $nodes = $this->_getSpecialNodes($parentNode, $tagName);
    } else {
      $nodes = $this->_getAllNodes($parentNode);
    }
    return $nodes;
  }
  /**
   *        
   * @param $parentNode    
   */
  protected function _getAllNodes($parentNode) {
    $nodes = array();
    foreach ($parentNode->childNodes as $node) {
      if ($node->nodeType == 1) {
        $nodes[] = $node;
      }
    }
    return $nodes;
  }
  /**
   *          
   * @param $parentNode    
   * @param $tagName     
   */
  protected function _getSpecialNodes($parentNode, $tagName) {
    $nodes = array();
    $tagName = strtolower(trim($tagName));
    foreach ($parentNode->childNodes as $node) {
      $nodeName = strtolower(trim($node->nodeName));
      if ($node->nodeType == 1 && $nodeName == $tagName) {
        $nodes[] = $node;
      }
    }
    return $nodes;
  }
  /**
   *        
   *
   * @param $node     
   * @param $attrName      //       
   */
  protected function _getAttr($node, $attrName) {
    $attrName = strtolower($attrName);
    foreach ($node->attributes as $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 '';
  }
}
?>


PS:ここではxml操作に関するオンラインツールをいくつか提供します.
オンラインXML/JSON相互変換ツール:http://tools.jb51.net/code/xmljson
オンラインフォーマットXML/オンライン圧縮XML:http://tools.jb51.net/code/xmlformat
XMLオンライン圧縮/フォーマットツール:http://tools.jb51.net/code/xml_format_compress
XMLコードオンラインフォーマット美化ツール:http://tools.jb51.net/code/xmlcodeformat
PHPに関する内容についてもっと兴味のある読者は、「PHPはXMLファイルに対する操作技巧総括」、「PHP配列(Array)操作技巧大全」、「php文字列(string)用法総括」、「PHPエラーと異常処理方法総括」、「PHP基本文法入門教程」、「php対象プログラム設計入門教程」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.