改变从源返回的文本

时间:2015-03-11 15:48:16

标签: php xml

此代码从Canada Post的服务器中提取送货选项的名称。我需要以某种方式指定如果它以“加速”的形式返回,则应该说“加拿大邮政”。这可能吗?

$name = substr(
   $resultXML,
   strpos($resultXML, "<name>") + strlen("<name>"),
   strpos($resultXML, "</name>") - strlen("<name>") - strpos($resultXML, "<name>")
);

2 个答案:

答案 0 :(得分:1)

您可以使用简单的if声明:

if ($name === 'Expedited') {
    $name = 'Canada Post';
}

答案 1 :(得分:0)

您需要使用内置于php

中的简单xml解析器
// make it more error friendly
$saved = libxml_use_internal_errors(true);

//load the xml as object
$xml = simplexml_load_string($inputString);
if ($xml === false) { 
    foreach (libxml_get_errors() as $error) {
        echo $error->message, "\n";
    }
    libxml_use_internal_errors($saved);
    return;
}

libxml_use_internal_errors($saved);

echo $xml->asXML(); //you can see the XML here

按照$xml->obj1->name等对象位置获取名称