2

我想过滤一个 xml 提要,所以我只导入正确语言的数据。

结构是:

<profile_lang lang="en">
<description>English description</description>
</profile_lang>
<profile_lang lang="fr">
<description>French</description>
</profile_lang>
<profile_lang lang="nl">
<description>Dutch text</description>
</profile_lang>

等等

我应该怎么做只导入荷兰语(lang="nl")描述?

4

2 回答 2

2

尝试

$xml = <<<XML 
<profile_lang lang="en">
<description>English description</description>
</profile_lang>
<profile_lang lang="fr">
<description>French</description>
</profile_lang>
<profile_lang lang="nl">
<description>Dutch text</description>
</profile_lang>
XML; 

$xml = new SimpleXMLElement($xml); 
$nodes = $xml->xpath('//*[@lang="en"]'); 

echo 'Found ', count($nodes), ' node(s) with lang "en".';
于 2014-04-07T02:09:55.530 回答
1

xpath 是一种在 XML 结构中定位/过滤/搜索特定元素的好方法

$xml = '<root><profile_lang lang="en"><description>English description</description></profile_lang><profile_lang lang="fr"><description>French</description></profile_lang><profile_lang lang="nl"><description>Dutch text</description></profile_lang></root>';
$simple = simplexml_load_string($xml);
$description = $simple->xpath('/root/profile_lang[@lang="nl"]/description');
echo $description[0]; // Dutch text

您可以提出自己的路径结构以满足您的需求

/root/profile_lang[@lang="nl"]/description
//profile_lang[@lang="nl"]/description
//profile_lang[@lang="nl"]
//description[../@lang="nl"]
于 2013-02-01T00:37:21.920 回答