比如有一个XML字符串 "<Address><to>James</to><from>Jani</form><heading>Reminder</heading></Address>", 我想用一段php处理后输出,Address
to:James
from:Jani
heading:Reminder注意,由于Address包含子节点,故它的值为空。方法不限,请大侠赐教一二。

解决方案 »

  1.   

    simplexml_load_string  解析出来就好了,格式要标准
      

  2.   

    $s='<Address><to>James</to><from>Jani</from><heading>Reminder</heading></Address>';
    $xml = simplexml_load_string($s);  
    print_r((array)$xml);
    Array
    (
        [to] => James
        [from] => Jani
        [heading] => Reminder
    )
      

  3.   


    不能打印根几点 Address啊。
      

  4.   

    domDocument用getElementByTagName找到所有的address,遍历一遍即可。
      

  5.   


    那你何不外面加一层呢?去分析"<t>your string……</t>",你会得到如下对象SimpleXMLElement Object
    (
        [Address] => SimpleXMLElement Object
            (
                [to] => James
                [from] => Jani
                [heading] => Reminder
            ))
      

  6.   

    xmlparse(xml与PHP数组相互转换)封装函数include (dirname(__FILE__) . "/xmlparse.php");
    #此处添加重复标签
    //$listtags = explode(" ", "Address ");
    $xml = <<<XML
    <XML>
    <Address>
    <to>James</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    </Address>
    </XML>
    XML;
    #将xml转换为数组
    $tmparr = parse_xml_config($xml, "xml");
    print_r($tmparr);
    #Array ( [address] => Array ( [to] => James [from] => Jani [heading] => Reminder ) [encoding] => UTF-8 )
    #将数组转换为xml
    $tmpxml = dump_xml_config($tmparr, "xml", "utf-8");
    echo "tmpxml-->>:<br>".$tmpxml;
    #源码:
    <?xml version="1.0" encoding="utf-8"?>
    <xml>
    <address>
    <to>James</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    </address>
    </xml>