【问题标题】:PHP: SimpleXMLElement dose not parse href attributes of link tagPHP:SimpleXMLElement 不解析链接标签的 href 属性
【发布时间】:2020-06-28 11:39:59
【问题描述】:

我想解析 xxm 文件,如下所示。但结果没有任何属性,包括第一个“a”标签的 href。

<?php
$xmlContent = <<<XML
    <ol>
        <li>
            <a href="Untitled-1-1.xhtml">1</a>
        </li>
        <li>
            <a href="Untitled-1-2.xhtml"/>
        </li>
    </ol>
XML;
    $xml = new \SimpleXMLElement($xmlContent);

    print_r($xml);

?>

结果:

[li] => Array
    (
        [0] => SimpleXMLElement Object
            (
                [a] => 1
            )

        [1] => SimpleXMLElement Object
            (
                [a] => SimpleXMLElement Object
                    (
                        [@attributes] => Array
                            (
                                [href] => Untitled-1-2.xhtml
                            )

                    )

            )

    )

【问题讨论】:

    标签: php


    【解决方案1】:

    您不能可靠地使用 print_r(或 var_dump 等)来检查 SimpleXML 元素。输出可能会丢失很多值。 See here 如果您想要更详尽的解释。 Other tools 可用于调试这些对象,如果您确实想要它们的完整视图。

    但是只要使用它的 API 跳转到对象中,值就会在那里。如果你想要第一个链接的href 值,它在这里:

    $xml->li[0]->a['href'];
    
    // Untitled-1-1.xhtml
    

    https://3v4l.org/BOVfB

    【讨论】:

    • 还有一个问题,如何检查href属性是否存在?!
    • 你应该可以使用isset - 例如isset($xml-&gt;li[0]-&gt;a['href'])
    猜你喜欢
    • 2011-07-09
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多