输入banner图图片脚本导航/分类

php解析cas返回的xml

使用php进行cas验证时,对方返回这么一段xml
            zhangjian            


于是使用php相关函数进行解析
$str = <<            zhangjian            EOT;/*$validateXML = simplexml_load_string($str);print_r($validateXML);$successnode = $validateXML->authenticationSuccess[0];var_dump($successnode);*/$xml = new DOMDocument();$xml -> loadXML($str);var_dump($xml);


结果都解析不出来,哪位朋友遇到过请指点下,不甚感激!!!


回复讨论(解决方案)

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

怎么会?

<?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);</pre>  <pre class="sycode" name="code">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            )</pre> </p> <p class="sougouAnswer">  谢谢唠叨大大,刚刚使用一个方法解决了,不过没有大大的好  <br />  <br />  <pre class="sycode" name="code">$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;</pre>  </div>

  </div>

<script type="text/javascript" src="/layui/layui.js"></script>
<script>
layui.use('code', function(){
  
layui.code({
  elem: 'pre', //默认值为.layui-code
  about:false,
  title:'php解析cas返回的xml代码块',
  encode: true //是否转义html标签。默认不开启
});
});
</script>
<footer class="comm-footer">
           <ul class="channels">
              <li>
                <a target="_top" href="/system/">操作系统</a>
            </li><li>
                <a target="_top" href="/down/">程序下载</a>
            </li><li>
                <a target="_top" href="/jquery/">jquery插件库</a>
            </li><li>
                <a target="_top" href="/jiaoben/">编程</a>
            </li><li>
                <a target="_top" href="/db/">数据库</a>
            </li><li>
                <a target="_top" href="/tools/">在线工具</a>
            </li><li>
                <a target="_top" href="/framebook/">框架书籍</a>
            </li><li>
                <a target="_top" href="/xitongjiaocheng/">系统教程</a>
            </li><li>
                <a target="_top" href="/ruanjianxiazai/">软件下载</a>
            </li>            </ul>
            <ul class="versions">
            <li>
                <a href="https://m.gxlcms.com" class="active">触屏版</a>
            </li>

            <li>
                <a href="https://www.gxlcms.com" target="_top">电脑版</a>
            </li>
            </ul>
           
              
     
        <p><a href="https://beian.miit.gov.cn/" target="_blank"  style="color:#ffffff"></a><script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?6c9b8cea1903c9f813f150c04aeebc3c";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script></p>
        </footer>	

</body>
</html>