如何从xml文件中获取值,然后使用php打印它们

时间:2014-08-23 01:37:47

标签: php xml

我的xml文件格式如下

<mainvalue>
<asd><url>http://someurl.com</url><active>yes</active></asd>
<qwe><url>http://someurl.com</url><active>no</active></qwe>
<zxc><url>http://someurl.com</url><active>yes</active></zxc>
</mainvalue>

我需要获取<asd>, <qwe> and <zxc>的值,因为我只知道如何将值作为名称或任何实体但不是随机值。加上获得active状态 然后使用php

等样式将这些值导出到<span class="<?php echo $active_status; ?>"><?php echo $value;</span>页面

请注意,我确实需要将这些值作为单独的名称,而不是全部。

提前致谢

2 个答案:

答案 0 :(得分:1)

DOMXPath救援!

这是非常简单的示例代码。我已将最终的字符串输出格式作为练习留给读者。

实施例

$xml = <<<XML
<mainvalue>
<asd><url>http://someurl.com</url><active>yes</active></asd>
<qwe><url>http://someurl.com</url><active>no</active></qwe>
<zxc><url>http://someurl.com</url><active>yes</active></zxc>
</mainvalue>
XML;

$dom = new DOMDocument();
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);

foreach ($dom->documentElement->childNodes as $node) {
    if ($node instanceof DOMElement) {
        echo $node->nodeName . "\t"; // wacky node name
        echo $xpath->evaluate('string(./active)', $node) . "\n"; // serious active value
    }
}

输出:

asd yes
qwe no
zxc yes

答案 1 :(得分:-1)

使用

$sxe = simplexml_load_file($xml_name)

加载xml文件;然后

echo $sxe->asd->url->attributes();

访问它