2016-01-30 20 views
0

我不想使用simplexml_load_file功能在我的PHP脚本,但我必须从一台服务器的XML文件通过fsockopenfwritefgets功能的线。获取从字符串的XML元素值不使用使用simplexml_load_file

如何从字符串(行)获取XML元素值?

$fs = fsockopen("website", 80); 
if (!$fs) { 
    echo "$errstr ($errno)<br />\n"; 
} else { 
    fwrite($fs, $req.$bdy); 
    while(!feof($fs)) { 
     $GLOBALS['s'] = fgets($fs); 
    } 
} 
fclose($fs); 
$attr = $GLOBALS['s']->attributes(); // THIS DOES NOT WORK 
echo $attr['Day date']; // I CANNOT GET VALUE HERE 
+0

可以共享xml行和您想获得什么属性? –

+1

'$ GLOBALS ['s']'只是一个字符串。使用DOMDocument解析它。 – PeeHaa

+0

@Orchidea你检查了['simplexml_load_string()'](http://php.net/manual/en/function.simplexml-load-string.php)? – har07

回答

0

如果是字符串,则可以使用正则表达式来获取属性值。从问题我假定你需要“日期”属性。为了得到它,你可以使用简单的正则表达式来获取值。请参阅我的下面的代码,

$fs = fsockopen("website", 80); 
if (!$fs) { 
    echo "$errstr ($errno)<br />\n"; 
} else { 
    fwrite($fs, $req.$bdy); 
    while(!feof($fs)) { 
     $GLOBALS['s'] = fgets($fs); 
    } 
} 
fclose($fs); 
// to get the matched attribute 
preg_match('/date\=\\"(.*?)\"/', $GLOBALS['s'], $output_array); 
var_dump($output_array[1]); 
+0

这个解决方案正在工作---我想,我可以通过这种方式从字符串中获取所有属性。谢谢! – Orchidea

+0

欢迎。只感谢? :) –