热搜:NVER node 开发 php

php解析cas返回的xml

2024-09-03 19:25:01
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。

怎么会?

&lt;?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> </p> </article >
      <div class="mimiwuqi pagebar-2">  </div>
      <div class="mimiwuqi art-tags">  </div>
      <div class="mimiwuqi art-copyright">
        <p>本文是由用户编写整理,所有内容的版权归原作者所有。如果侵犯了您的权益,请联系我删除<br></p>
      </div>
    </div>
    <div class="mimiwuqi prev-next">       <p class="mimiwuqi art-prev"> <a href="https://frontend.mimiwuqi.com/qianduan/404892.html" rel="prev"><span>上一篇</span>
        PHP类继承,有关构造函数        </a> </p>
                        <p class="mimiwuqi art-next"> <a href="https://frontend.mimiwuqi.com/qianduan/442913.html" rel="next"><span>下一篇</span>
        PHP写的API如何防止拒绝服务攻击?        </a> </p>
                </div>
  </div>
  <div class="mimiwuqi col-right r">
      <div class="mimiwuqi widget widgetModule widgetHotPost">
        <div class="mimiwuqi com-tit">
          <h4 class="mimiwuqi title-2">相关推荐</h4>
        </div>
        <ul class="mimiwuqi mod-main mod-post">
                     <li> <a href="https://frontend.mimiwuqi.com/qianduan/404893.html" target="_blank" title="php解析cas返回的xml" class="mimiwuqi clearfix">
            <div>
              php解析cas返回的xml            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404892.html" target="_blank" title="PHP类继承,有关构造函数" class="mimiwuqi clearfix">
            <div>
              PHP类继承,有关构造函数            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404891.html" target="_blank" title="用soapclient 这个返回的数组是什么意思" class="mimiwuqi clearfix">
            <div>
              用soapclient 这个返回的数组是什么意思            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404890.html" target="_blank" title="这个json数据如何解析" class="mimiwuqi clearfix">
            <div>
              这个json数据如何解析            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404889.html" target="_blank" title="高手开过来!PHP的bcmath问题你懂吗?" class="mimiwuqi clearfix">
            <div>
              高手开过来!PHP的bcmath问题你懂吗?            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404888.html" target="_blank" title="php图片上传问题" class="mimiwuqi clearfix">
            <div>
              php图片上传问题            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404887.html" target="_blank" title="php 关于重写规则的一个问题" class="mimiwuqi clearfix">
            <div>
              php 关于重写规则的一个问题            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404886.html" target="_blank" title="PHP程序能否 有 网页关闭事件" class="mimiwuqi clearfix">
            <div>
              PHP程序能否 有 网页关闭事件            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404885.html" target="_blank" title="本机php连接远程sql server 2008问题请教" class="mimiwuqi clearfix">
            <div>
              本机php连接远程sql server 2008问题请教            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404884.html" target="_blank" title="求教如何部署页游平台网站?" class="mimiwuqi clearfix">
            <div>
              求教如何部署页游平台网站?            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404883.html" target="_blank" title="PHP幽??象" class="mimiwuqi clearfix">
            <div>
              PHP幽??象            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404882.html" target="_blank" title="zendframework 新手问题,没法实例化对象" class="mimiwuqi clearfix">
            <div>
              zendframework 新手问题,没法实例化对象            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404881.html" target="_blank" title="session_start();报错问题" class="mimiwuqi clearfix">
            <div>
              session_start();报错问题            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404880.html" target="_blank" title="有一个问题,请徐祖宁版主帮助啊" class="mimiwuqi clearfix">
            <div>
              有一个问题,请徐祖宁版主帮助啊            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404879.html" target="_blank" title="新手问个问题,各位大神在吗小弟跪拜了!" class="mimiwuqi clearfix">
            <div>
              新手问个问题,各位大神在吗小弟跪拜了!            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404878.html" target="_blank" title="返回JSON数据的接口" class="mimiwuqi clearfix">
            <div>
              返回JSON数据的接口            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404877.html" target="_blank" title="MySQL中连接各个表的连接属性怎么在语句中实现,是不是还得再创建一个表" class="mimiwuqi clearfix">
            <div>
              MySQL中连接各个表的连接属性怎么在语句中实现,是不是还得再创建一个表            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404876.html" target="_blank" title="在调试一个上传文件并保存在数据库里的小程序,始终出现问题,向这里的大神请教!" class="mimiwuqi clearfix">
            <div>
              在调试一个上传文件并保存在数据库里的小程序,始终出现问题,向这里的大神请教!            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404875.html" target="_blank" title="php codeigniter框架怎么改变视图页面编码语言英文为中文" class="mimiwuqi clearfix">
            <div>
              php codeigniter框架怎么改变视图页面编码语言英文为中文            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/404874.html" target="_blank" title="用file上传文件,在tmp目录下找不到文件" class="mimiwuqi clearfix">
            <div>
              用file上传文件,在tmp目录下找不到文件            </div>
            </a> </li>
                  </ul>
      </div>
    </div>
  </div>
</div>
<footer class="footer">
  <div class="footer-bottom">
      <div class="container">
        <div class="footer-copyright">Copyright © 2009 mimiwuqi.com<span>・ </span><a rel="nofollow" target="__blank" href="https://beian.miit.gov.cn">晋ICP备2021011283号</a>  <script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?7b19f396c9feef68fe5082cad0b0eeff";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
</div>
      </div>
  </div>
  <div class="foot-link">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/truste.png" alt="TRUSTe Privacy Certification">	
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/icon3.png" alt="可信网站">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/f1ee261b96ae71e845efba398efeca02.png" alt="网站安全">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/a6ef792fec0a3f4f370cb8d8c6d11134.png" alt="服务时间">
  </div>
<div class="rollbar">
  <div class="rollbar-item"><a rel="nofollow" target="_blank" title="举报反馈留言"  href="https://www.mimiwuqi.com/e/tool/gbook/?bid=2"><i class="iconfont icon-fankui"></i>反馈</a></div>
  <div class="rollbar-item tap-qq" etap="tap-qq"><a rel="nofollow" target="_blank" title="QQ咨询" href="tencent://message/?uin=431571451&Site=qq&Menu=yes"><i class="iconfont icon-qq"></i></a></div>
  <div class="rollbar-item tap-weixin" etap="tap-weixin" data-id="0" title="关注微信"><i class="iconfont icon-weixin"></i><img src="/skin/mimiwuqi/images/weixin.png" alt="微信联系"></div>
  <div class="rollbar-item to_full" etap="to_full" title="全屏页面"><i class="iconfont icon-full"></i></div>
  <div class="rollbar-item to_top" etap="to_top" title="返回顶部"><i class="iconfont icon-shang"></i></div>
</div>  <div id="loginbox"></div>
  <script type="text/javascript" src="/skin/images/login.js"></script>  
</footer>
 

<div class="mimiwuqi m-mask"></div>
<script src="https://frontend.mimiwuqi.com/skin/mimiwuqi/js/jquery.fancybox.min.js"  type="text/javascript"></script>
<link rel="stylesheet" href="https://frontend.mimiwuqi.com/skin/mimiwuqi/css/jquery.fancybox.min.css">

<script>
$(function () {
        $('.content').find('img').each(function () {
                var _this = $(this);
                var _src = _this.attr("src");
                var _alt = 'php解析cas返回的xml';
                _this.wrap('<a data-fancybox="images" href="' + _src + '" data-caption="' + _alt + '"></a>');
				$(this).attr('title','' + _alt + '');
        })
})
const preElements = document.querySelectorAll('pre');
		preElements.forEach((pre, index) => {
			const code = document.createElement('code');
			code.textContent = pre.textContent;
			pre.textContent = '';
			pre.appendChild(code);
			const codebutton = document.createElement('button');
			codebutton.textContent = '复制';
			codebutton.className = 'hljs-button';
			pre.appendChild(codebutton);
			codebutton.addEventListener('click', function () {
				navigator.clipboard.writeText(code.textContent).then(() => {
					codebutton.textContent = '已复制';
					setTimeout(() => {
						codebutton.textContent = '复制';
					}, 2000);
				})
					.catch(err => {
						console.error('无法复制文本: ', err);

					});
			});
		});
</script>
</body>
</html>