Php SimpleXML,通过搜索值查找父节点

Php SimpleXML,通过搜索值查找父节点,php,xml,xpath,simplexml,key-value,Php,Xml,Xpath,Simplexml,Key Value,我下载了一个法语->英语词汇表,将法语请求(一个单词请求)翻译成英语 例如,在搜索输入中键入“voiture”(法语中的car)的用户将在“car”中翻译,“car”将在我的数据库中搜索(用户不可见,他认为正在寻找“voiture”) 所以这是一段措辞: SimpleXMLElement Object ( [entry] => Array ( ... ... [7] => SimpleXMLElement Object

我下载了一个法语->英语词汇表,将法语请求(一个单词请求)翻译成英语

例如,在搜索输入中键入“voiture”(法语中的car)的用户将在“car”中翻译,“car”将在我的数据库中搜索(用户不可见,他认为正在寻找“voiture”)

所以这是一段措辞:

SimpleXMLElement Object
(
[entry] => Array
    (
        ...
        ... 
        [7] => SimpleXMLElement Object
            (
                [form] => SimpleXMLElement Object
                    (
                        [orth] => ADN
                        [pron] => ad
                    )

                [gramGrp] => SimpleXMLElement Object
                    (
                        [pos] => n
                        [gen] => masc
                    )

                [sense] => SimpleXMLElement Object
                    (
                        [def] => DNA
                    )
            )
        [8] => SimpleXMLElement Object
            (
                [form] => SimpleXMLElement Object
                    (
                        [orth] => Abkhasie
                        [pron] => abkazi
                    )

                [gramGrp] => SimpleXMLElement Object
                    (
                        [pos] => n
                    )

                [sense] => SimpleXMLElement Object
                    (
                        [def] => Abkhazia
                    )
            )
            ...

所以,[orth]包含法语单词,而[def]包含英语翻译。我知道如何搜索[ORH]的值是否存在,如果该值存在,则返回SimpleXMLElement对象中[def]的值。

类似的内容可能就足够了。我已经模拟了您文章中的XML,因为它不确定原始结构,但您应该了解xpath查询:

$languageXml = <<<XML
    <entries>
        <entry>
            <form>
                <orth>ADN</orth>
            </form>
            <sense>
                <def>DNA</def>
            </sense>
        </entry>
        <entry>
            <form>
                <orth>poisson</orth>
            </form>
            <sense>
                <def>fish</def>
            </sense>
        </entry>
        <entry>
            <form>
                <orth>voiture</orth>
            </form>
            <sense>
                <def>car</def>
            </sense>
        </entry>
    </entries>
XML;

$xml = new SimpleXMLElement($languageXml);    
$searchTerm = 'voiture';

if($result = $xml->xpath("entry/form/orth[.='$searchTerm']/../../sense")) {
    echo $result[0]->def;
};
$languageXml=