0

我想从以下 xml 中提取属性 BODY 和 TYPE,并将 TYPE 输出为 div 类,将正文输出为文本。

例如:

foreach (...) {
echo "<div class='$type_value'>$body_value</div>"
}

我的 XML:

<smses>
<sms body='something' type='1' address='1234'>
<sms body='something' type='2' address='12345'>
<sms body='something' type='2' address='1234'>
</smses>

我的代码(到目前为止只提取一个属性 - 正文):

$doc = new DOMDocument();
$doc->load('xml/sms.xml');

$path = new Domxpath($doc);

$num = $_POST["sel"];

$result = $path->query("//smses/sms[@address='$num']/@body");

foreach($result as $res)
{
echo "<div id='sms'>".$res->textContent.'</div><br/><br/>';
}
4

1 回答 1

2

从 XPath 中删除/@body,以便您选择实际<sms>元素,使用它可以将type属性及其正文文本放入<div>

$result = $path->query("//smses/sms[@address='$num']");

foreach($result as $res)
{
    echo "<div id='sms' class='" . $res->getAttribute("type") . "'>". $res->getAttribute("body").'</div><br/><br/>';
}

演示

于 2013-02-12T11:34:18.613 回答