我下载了一本法语->英语词典,将法语请求(一个单词请求)翻译成英语。
例如,用户在搜索输入中键入"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包含法语单词,并默认使用英语翻译。我知道如何搜索orth值是否存在,如果存在,则在SimpleXMLElement对象中返回def的值。
发布于 2014-07-28 21:04:54
像这样的东西可能就足够了。我已经模拟了您的文章中的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;
};https://stackoverflow.com/questions/24994710
复制相似问题