SimpleXML也是PHP5后提供的一套简单易用的xml工具集,
不过它不适用于包含namespace(命名空间)的xml。

解决方案 »

  1.   

    怎么会?<xmp>
    <?php
    $str = <<<EOT
    <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
        <cas:authenticationSuccess>
            <cas:user>zhangjian</cas:user>
            <cas:language></cas:language>
        </cas:authenticationSuccess>
    </cas:serviceResponse>
    EOT;
     
     $validateXML = simplexml_load_string($str, null, 0, 'cas', true);
    print_r($validateXML);$successnode = $validateXML->authenticationSuccess[0];
    print_r($successnode); 
    $xml = new DOMDocument();
    $xml -> loadXML($str);
    print_r($xml);SimpleXMLElement Object
    (
        [authenticationSuccess] => SimpleXMLElement Object
            (
                [user] => zhangjian
                [language] => SimpleXMLElement Object
                    (
                    )        ))
    SimpleXMLElement Object
    (
        [user] => zhangjian
        [language] => SimpleXMLElement Object
            (
            ))
    DOMDocument Object
    (
        [doctype] => 
        [implementation] => (object value omitted)
        [documentElement] => (object value omitted)
        [actualEncoding] => 
        [encoding] => 
        [xmlEncoding] => 
        [standalone] => 1
        [xmlStandalone] => 1
        [version] => 1.0
        [xmlVersion] => 1.0
        [strictErrorChecking] => 1
        [documentURI] => file:///D:/AMP/web/
        [config] => 
        [formatOutput] => 
        [validateOnParse] => 
        [resolveExternals] => 
        [preserveWhiteSpace] => 1
        [recover] => 
        [substituteEntities] => 
        [nodeName] => #document
        [nodeValue] => 
        [nodeType] => 9
        [parentNode] => 
        [childNodes] => (object value omitted)
        [firstChild] => (object value omitted)
        [lastChild] => (object value omitted)
        [previousSibling] => 
        [attributes] => 
        [ownerDocument] => 
        [namespaceURI] => 
        [prefix] => 
        [localName] => 
        [baseURI] => file:///D:/AMP/web/
        [textContent] => 
        
            zhangjian
            
        )
      

  2.   

    谢谢唠叨大大,刚刚使用一个方法解决了,不过没有大大的好
    $str = <<<EOT
    <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
        <cas:authenticationSuccess>
            <cas:user>zhangjian</cas:user>
            <cas:language></cas:language>
        </cas:authenticationSuccess>
    </cas:serviceResponse>
    EOT;$str = str_replace('cas:', '', $str);
    $validateXML = simplexml_load_string($str);
    $successnode = $validateXML->authenticationSuccess[0];
    echo (string)$successnode->user;