5

これが私のPHPコードです:

$xml = new SimpleXMLElement('data.xml', null, true);
$q = $xml->xpath('post/misc[contains(tags,"animal")][position() <= 2]');

そして、これがXMLファイルです。

<?xml version="1.0" encoding="UTF-8" ?>
<posts>
    <post>
        <id>1</id>
        <misc>
            <tags>animal,tiger</tags>
            <prio>0.5</prio>
        </misc>
    </post>
    <post>
        <id>2</id>
        <misc>
            <tags>plant,coconut</tags>
            <prio>0.5</prio>
        </misc>
    </post>
    <post>
        <id>3</id>
        <misc>
            <tags>animal,lion</tags>
            <prio>0.5</prio>
        </misc>
    </post>
    <post>
        <id>4</id>
        <misc>
            <tags>animal,monkey</tags>
            <prio>0.5</prio>
        </misc>
    </post>
</posts>

タグに「動物」が含まれている最初の2つの要素を取得するにはどうすればよいですか?

xpathの結果はとである必要がpost:id=1ありますpost:id=3が、を含むすべての要素を返すように見えますanimal

4

1 に答える 1

4

メインのXPath部分を()角かっこで囲みます。

(//post/misc[contains(tags,"animal")])[position() <= 2]
于 2012-11-19T10:10:25.647 に答える