将html标签转换为php数组

时间:2016-05-30 13:19:29

标签: javascript php html dom

我有一个来自我想要转换的合作伙伴的系统状态页面,以便我可以将其输入自动化到我自己的服务页面中。服务的状态由<span>类提供。我知道这远非理想,但这是他们提供更新的唯一方式。

以下是HTML的副本:

<ul class="item-3">
    <li class="status service1">
        <span class="icon"></span>
        <h6>
        SERVICE 1
        </h6>
        <p>
        Updated:
        9:52 AM CST Apr, 24
        </p>
        <span class="arrow up"></span>
    </li>
    <li class="status service2">
        <span class="icon"></span>
        <h6>
        SERVICE 2
        </h6>
        <p>
        Updated:
        9:52 AM CST Apr, 24
        </p>
        <span class="arrow up"></span>
    </li>
    <li class="status service3">
        <span class="icon"></span>
        <h6>
        SERVICE 3
        </h6>
        <p>
        Updated:
        9:52 AM CST Apr, 24
        </p>
        <span class="arrow up"></span>
    </li>
</ul>

我需要获取<span class="arrow up">值,因为这是服务状态,<li class="status service3">因为这会告诉我它是什么服务。

由于我的状态页API使用ID而不是“up / down”等,我需要将状态和服务放在数组中,以便将它们转换为我的格式。

1 个答案:

答案 0 :(得分:0)

[tableView deselectRowAtIndexPath:indexPath animated:YES];

输出&#34; Up&#34;系统状态

$xml = new SimpleXMLElement($html);

$result = $xml->xpath('//ul/li');
$up = array(); //array of servises that is 'up'
$down = array(); //array of servises that is 'down'
foreach ($result as $item)
{
    if (strpos($item->span[1]->attributes()->class, 'up') !== false)
    {
        $up[] = str_replace("status ", "", $item->attributes()->class);
    }

    if (strpos($item->span[1]->attributes()->class, 'down') !== false)
    {
        $down[] = str_replace("status ", "", $item->attributes()->class);
    }
}

var_dump($up);
var_dump($down);