【发布时间】:2017-10-11 20:53:02
【问题描述】:
我现在正在尝试几天,但我找不到正确的代码..我很绝望,所以我希望有人能帮助我..
这是我的 XML 代码:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="repo.name" name="Repo name" version="1.1.0.1" provider-name="provider name">
<extension point="xbmc.addon.repository" name="repo name">
<info compressed="false">http://data.com/addons.xml</info>
<checksum>http://data.com/addons.xml.md5</checksum>
<datadir zip="true">http://data.com/files</datadir>
</extension>
<extension point="xbmc.addon.metadata">
<description lang="en">bla bla</description>
<disclaimer lang="en">bla 2 bla 2</disclaimer>
<language></language>
<platform>all</platform>
<license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license>
</extension>
</addon>
我如何在 PHP 中获得以下值:
<extension point="xbmc.addon.metadata">
<description lang="en">bla bla</description> <---- This one
我尝试了诸如 foreach 循环和 xpath 之类的东西,但没有什么能让我得到字符串:“bla bla”
foreach ($success->summary as $success2) {
echo $success2['lang'];
foreach ($success2->attributes()['lang'] as $success3) {
print_r($success3->summary);
foreach($xml->xpath('extension/@point') as $link) { echo $link['platform']; echo "\n"; }
我希望有人可以帮助我,这样我就可以完成我的小项目
编辑:
感谢@Mega6382 的帮助。
但是当我尝试从描述中获取多种语言时,它不会起作用:
XML 就像:
<extension point="xbmc.addon.metadata">
<description lang="en">en bla bla</description>
<description lang="nl">Dutch desc</description>
<description lang="be">English desc</description>
<description>Standard desc</description>
</extension>
但是当我尝试使用荷兰语和英语 lang 时,我只会得到英文描述(当我将 nl 移到 en 上方时,我只会得到 nl 描述..)
php代码:
<?php
$xml = simplexml_load_string ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="repo.name" name="Repo name" version="1.1.0.1" provider-name="provider name">
<extension point="xbmc.addon.repository" name="repo name">
<info compressed="false">http://data.com/addons.xml</info>
<checksum>http://data.com/addons.xml.md5</checksum>
<datadir zip="true">http://data.com/files</datadir>
</extension>
<extension point="xbmc.addon.metadata">
<description lang="en">en bla bla</description>
<description lang="nl">Dutch desc</description>
<description lang="de">German desc</description>
<description>Standard desc</description>
</extension>
</addon>');
foreach($xml->extension as $extension)
{
if(isset($extension->description))
{
if($extension->description['lang'] == 'en')
{
echo $extension->description;
}
if($extension->description['lang'] == 'nl')
{
echo $extension->description;
}
}
}
?>
【问题讨论】:
-
你能把你试过的东西贴出来吗
-
我删除了其余的,我尝试的最后一件事:
foreach($xml->xpath('extension/@point') as $link) { echo $link['platform']; echo "\n"; }但我什至不会得到平台的价值.. -
@Arjanth 只需删除
continue;即可。 -
@mega6382 nop.. 还是不行。