首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimpleXML,通过搜索值查找父节点

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

Stack Overflow用户
提问于 2014-07-28 19:55:56
回答 1查看 405关注 0票数 0

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

例如,用户在搜索输入中键入"voiture“(法语中的car)将被翻译为"car",而"car”将在我的数据库中搜索(对于用户来说是不可见的,他认为正在查找"voiture")。

所以这是字典中的一部分:

代码语言:javascript
复制
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包含法语单词,并默认使用英语翻译。我知道如何搜索orth值是否存在,如果存在,则在SimpleXMLElement对象中返回def的值。

EN

回答 1

Stack Overflow用户

发布于 2014-07-28 21:04:54

像这样的东西可能就足够了。我已经模拟了您的文章中的XML,因为对原始结构不确定,但是您应该理解xpath查询的概念:

代码语言:javascript
复制
$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;
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24994710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档