• PHP-xml-1


    SimpleXML 解析xml 假设xml没有声明encoding默认使用utf-8进行解码。终于得到的数据编码为utf-8格式。

    我猜想它内部实现了iconv(encoding=’utf-8’, ‘utf-8’,str); 所以当xml中存在中文,可是xml没有声明encoding = ‘gbk’ 会报错误。



    testxml.xml文件例如以下

    <?xml version="1.0" encoding="utf-8"?>
    <languages>
     <lang name="C">
      <appeared>1972</appeared>
      <creator>Dennis Ritchie</creator>
     </lang>
     <lang name="PHP">
      <appeared>1995</appeared>
      <creator>Rasmus Lerdorf</creator>
     </lang>
     <lang name="Java">
      <appeared>1995</appeared>
      <creator>James Gosling</creator>
     </lang>
    </languages>
    

    <?php 
        /*获取xml对象*/
        $xmlobj = simplexml_load_file('testxml.xml');
        //var_dump($xmlobj);
    
        /*获取元素节点  返回XML对象*/
        $appeared = $xmlobj->lang[0]->appeared;
        $creator = $xmlobj->lang[0]->creator;
        //var_dump($appeared,$creator);
    
        /*获取元素的名称  返回字符串*/
        $rootName = $xmlobj->getName();
        //var_dump($rootName);
    
        /*属性节点訪问  foreach遍历xml节点*/
        foreach($xmlobj->lang as $lang){
            printf("<p>%s appeared in %d and was created by %s.</p>",
            $lang['name'],
            $lang->appeared,
            $lang->creator);
        }
    ?

    >


    textxml2.xml文件例如以下:

    <?

    xml version="1.0" encoding="utf-8"?> <languages xmlns:dc="http://purl.org/dc/elements/1.1/"> <lang name="C"> <appeared>1972</appeared> <dc:creator>Dennis Ritchie</dc:creator> </lang> <lang name="PHP"> <appeared>1995</appeared> <dc:creator>Rasmus Lerdorf</dc:creator> </lang> <lang name="Java"> <appeared>1995</appeared> <dc:creator>James Gosling</dc:creator> </lang> </languages>


    <?

    php $ncxmlobj = simplexml_load_file('testxml2.xml'); /*获取命名空间下的节点 */ $nc = $ncxmlobj ->lang[0]->children('http://purl.org/dc/elements/1.1/'); $ncreator = $nc->creator; //var_dump($ncreator); /*获取命名空间 获取节点下属于nc的节点*/ $nc = $ncxmlobj -> getNamespaces(TRUE); $dc = $ncxmlobj ->lang[0]->children($nc['dc']); //var_dump($dc->creator); ?>


    兼容的比較lower

    
    <?

    php $xml = file_get_contents($url); foreach($http_response_header as $header){ if(preg_match('#Content-Type(.*)charset=(.*)#i',$header,$match)){ switch(strtolower($match[2])){ case 'utf-8': break; case 'iso-8859-1': $xml = utf8_encode($xml); //Encodes an ISO-8859-1 string to UTF-8 break; default: $xml = iconv($m[1], 'utf-8', $xml); } break; } } simplexml_load_string($xml); ?

    >

  • 相关阅读:
    MongoDB环境配置
    Python之路【第二十七篇】:反射
    Socket网络通讯,TCP三次握手和四次释放,与UDP的差别
    iOS 常用第三方
    UISegmentedControl的使用
    OC取应用程序目录的路径
    KVC中setValuesForKeysWithDictionary
    KVC和KVO的简单对比
    C语言 内存和地址
    html基础知识
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5213408.html
Copyright © 2020-2023  润新知