0

次のxmlから属性BODYとTYPEの両方を抽出し、TYPEをdivクラスとして出力し、bodyをテキストとして出力したいと思います。

例えば:

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>

私のコード(これまでのところ、1つの属性のみを抽出しています-body):

$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 に答える