PHP和XML:获取完整的节点内容

时间:2015-09-16 14:07:21

标签: php xml

我有一个XML:

ToString("dd MMMM yyyy hh:mm tt")

我需要得到(作为一个字符串)每个节点的内容,但实际上是这样! 例如,frm上面的xml,我需要输出一个字符串,如: aaaeeeInterInChina 对于每个"文件"节点

我现在处于这种情况:

<elements version="1.0">
    <files>
        <file id="125173909582">
            <text>aaa</text>
            <source>eee</source>
            <tag>InterInChina</tag>
        </file>
    </files>
</elements>

但$ content不是我需要的,因为它的所有节点都是。

谢谢大家!

3 个答案:

答案 0 :(得分:0)

你可以使用这样的东西;

$data = '<elements version="1.0">
    <files>
        <file id="125173909582">
            <text>aaa</text>
            <source>eee</source>
            <tag>InterInChina</tag>
        </file>
    </files>
</elements>';
//$request_url="http://www.example.com";
//$xml=simplexml_load_file($request_url);
$xml = new SimpleXMLElement($data);//for test

foreach($xml->files as $k=>$data){
    resp = $data->file->text.' '.$data->file->source.' '.$data->file->tag;  
}
var_dump($resp);

答案 1 :(得分:0)

你不想要xml。您希望通过文件进行迭代。然后通过变量进行迭代。你可以使用foreach:

让我们开始像设置多个文件一样设置你的xml:

    $content='<elements version="1.0">
    <files>
        <file id="125173909582">
            <text>aaa</text>
            <source>eee</source>
            <tag>InterInChina</tag>
        </file>

        <file id="125173909582">
            <text>bb</text>
            <source>sss</source>
            <tag>bla</tag>
        </file>
    </files>
</elements>';


    $xml = new SimpleXMLElement($content);

现在我们可以这样做:

$xml = new SimpleXMLElement($content);
foreach($xml->files->file as $file){
echo "<h1>file</h1>"; 
    foreach($file as $key=>$value){
        if(!is_array($value)){
            echo $key . " = ".$value."<br>"; 
        }
    }
}

答案 2 :(得分:0)

@mark_smit的答案没关系......但我的问题的正确答案是:

$xml = new SimpleXMLElement($content);
foreach($xml->files->file as $file){
    foreach($file as $key=>$value){
        if(!is_array($value)){
            echo "<".$key.">".$value."</".$key.">"; 
        }
    }
}