Php SimpleXML,通过搜索值查找父节点
我下载了一个法语->英语词汇表,将法语请求(一个单词请求)翻译成英语 例如,在搜索输入中键入“voiture”(法语中的car)的用户将在“car”中翻译,“car”将在我的数据库中搜索(用户不可见,他认为正在寻找“voiture”) 所以这是一段措辞: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
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=