这是我的XML
<?xml version="1.0" encoding="utf-8"?>
<AssociateUserToPMSResponse Auth/UserToken="somestring" warning="Already existed in database">
<Success>true</Success>
</AssociateUserToPMSResponse>
当我尝试从XML中删除整齐的类 Auth / UserToken 时。 如何获得 Auth / UserToken 的价值?
答案 0 :(得分:0)
由于XML不能很好地用作XML,因此可以使用DOM将其加载为格式错误的HTML。以下代码将加载内容 - 加载的一个轻微副作用是标记名称全部转换为小写(我在XPath表达式中使用'success'而不是'Success')。
<?php
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );
$xml = <<< XML
<?xml version="1.0" encoding="utf-8"?>
<AssociateUserToPMSResponse Auth/UserToken="somestring" warning="Already existed in database">
<Success>true</Success>
</AssociateUserToPMSResponse>
XML;
$doc = new DOMDocument();
libxml_use_internal_errors(TRUE);
$doc->loadHTML($xml);
$xp = new DOMXPath($doc);
$s = $xp->query("//success");
echo $doc->saveHTML($s[0]);
此外,如果您输出文档的内容,您会发现第一个实体被加载为...
<associateusertopmsresponse auth warning="Already existed in database">
所以不是用/加载它,而是加载它好像是两个属性,第一个没有值。