PHP - 替换存储在Variable中的XML中的Prolog标记

时间:2017-01-06 23:21:11

标签: php xml web-services curl

我使用PHP访问Web服务,该服务以XML格式返回单个用户的数据,并将其存储在名为$results_users_xml的变量(包括prolog标记)中。

$results_users_xml内容:

<?xml version="1.0" encoding="UTF-8"?> 
<User xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dmu="http://www.digitalmeasures.com/schema/user-metadata" username="ppurfiel" dmu:userId="1600263"> 
    <FirstName>Patrick</FirstName> 
    <LastName>Purfield</LastName> 
    <Email>ppurfiel@msudenver.edu</Email> 
    <LocalAuthentication/> 
    <dmu:Schemas xlink:type="simple" xlink:href="/login/service/v4/UserSchema/USERNAME:ppurfiel"/> 
    <dmr:Roles xmlns:dmr="http://www.digitalmeasures.com/schema/role-metadata" xlink:type="simple" xlink:href="/login/service/v4/UserRole/USERNAME:ppurfiel"/> 
</User> 

从这个XML字符串我已经存储了现有的Prolog标签,如下所示: $orig_xml_tag = "&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;";

我已经定义了一个包含所需Prolog标签的变量: $xsl_tag = "&lt;?xml-stylesheet type=\"text/xsl\" href=\"curl_test.xsl\"?&gt;";

在包含XML数据($results_users_xml)的变量中,我想用原始的Prolog标记($orig_xml_tag)替换所需的Prolog标记($xsl_tag)。结果将存储在一个新变量中。

我一直在尝试不同的PHP函数,包括str_replace()substr_replace(),但在每种情况下,原始Prolog都不会被所需的Prolog取代。例如,我尝试过:

echo str_replace($orig_xml_tag, $xsl_tag, $results_users_xml);

echo substr_replace($orig_xml_tag, $xsl_tag, 0);

但在每种情况下,所需的替换都不起作用,原始XML值($results_users_xml)保持不变。

非常感谢任何和所有的帮助, 帕特里克

0 个答案:

没有答案