从 xml 数据(搜索 XML 数据)中获取 XML 元素作为字符串 php
Get XML Element as a string from xml data ( Search through XML data ) in php
我正在尝试从 'n' 个 xml 中获取 11 xml 个元素 ] 元素。我有 11 个 ID,其中 id
对于所有 xml 元素都是唯一的。
我正在使用 php
$xml = simplexml_load_string($j[0]); // $j[0] contains 'n' number of xml elements. I need to get 11 xml elements with 11 different ids.
$doc = new DOMDocument();
$doc->loadXML($j[0]);
$players = $doc->getElementsByTagName('player');
我需要解析下面的 xml 数据($j[0]
)
<testsquad>
<team name="team1" abbr="t1" >
<tplayers>
<player name="player1" id="1"/>
<player name="player2" id="2"/>
<player name="player3" id="3"/>
<player name="player4" id="4"/>
<player name="player5" id="5"/>
<player name="player6" id="6"/>
<player name="player7" id="7"/>
<player name="player8" id="8"/>
<player name="player9" id="9"/>
<player name="player10" id="10"/>
<player name="player11" id="11"/>
<player name="player12" id="12"/>
<player name="player13" id="13"/>
<player name="player14" id="14"/>
<player name="player14" id="14"/>
</tplayers>
</team>
</testsquad>
根据给定的 xml 数据和 'n' 个播放器元素,我只需要获取 11 个元素。
我对使用 php.
搜索 xml 数据感到困惑
当我执行 var_dump($doc->loadXML($j[0]));
时,出现以下错误。
Warning: DOMDocument::loadXML(): Empty string supplied as input
我哪里错了?如果我的问题不清楚,请评论。
给定的 xml 数据没有下面的 header。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
是这个原因吗,它说 作为输入提供的空字符串?
错误消息说您为 DOMDocument::loadXml() 提供了一个空字符串。验证 $j[0]
实际上包含 XML 字符串。
Xpath可以用来限制结果:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
foreach ($xpath->evaluate('//tplayers/player[position() <= 3]/@name') as $attribute) {
var_dump($attribute->value);
}
string(7) "player1"
string(7) "player2"
string(7) "player3"
我使用 SimpleXMLElement's xpath 而不是 DOMDocument,结果得到了简单 XML 元素对象。
查看下面的代码。
$player_id_list = array(1,3,5,7,9,11,13,15,17,19,21);
$xml=new SimpleXMLElement($j[0]);
foreach($player_id_list as $new_player_id)
{
$result = $xml->xpath("team/PlayerDetails/player[@id=".$new_player_id."]");
echo "<pre>";
var_dump($result);
echo "</pre>";
}
我正在尝试从 'n' 个 xml 中获取 11 xml 个元素 ] 元素。我有 11 个 ID,其中 id
对于所有 xml 元素都是唯一的。
我正在使用 php
$xml = simplexml_load_string($j[0]); // $j[0] contains 'n' number of xml elements. I need to get 11 xml elements with 11 different ids.
$doc = new DOMDocument();
$doc->loadXML($j[0]);
$players = $doc->getElementsByTagName('player');
我需要解析下面的 xml 数据($j[0]
)
<testsquad>
<team name="team1" abbr="t1" >
<tplayers>
<player name="player1" id="1"/>
<player name="player2" id="2"/>
<player name="player3" id="3"/>
<player name="player4" id="4"/>
<player name="player5" id="5"/>
<player name="player6" id="6"/>
<player name="player7" id="7"/>
<player name="player8" id="8"/>
<player name="player9" id="9"/>
<player name="player10" id="10"/>
<player name="player11" id="11"/>
<player name="player12" id="12"/>
<player name="player13" id="13"/>
<player name="player14" id="14"/>
<player name="player14" id="14"/>
</tplayers>
</team>
</testsquad>
根据给定的 xml 数据和 'n' 个播放器元素,我只需要获取 11 个元素。
我对使用 php.
搜索 xml 数据感到困惑当我执行 var_dump($doc->loadXML($j[0]));
时,出现以下错误。
Warning: DOMDocument::loadXML(): Empty string supplied as input
我哪里错了?如果我的问题不清楚,请评论。
给定的 xml 数据没有下面的 header。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
是这个原因吗,它说 作为输入提供的空字符串?
错误消息说您为 DOMDocument::loadXml() 提供了一个空字符串。验证 $j[0]
实际上包含 XML 字符串。
Xpath可以用来限制结果:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
foreach ($xpath->evaluate('//tplayers/player[position() <= 3]/@name') as $attribute) {
var_dump($attribute->value);
}
string(7) "player1"
string(7) "player2"
string(7) "player3"
我使用 SimpleXMLElement's xpath 而不是 DOMDocument,结果得到了简单 XML 元素对象。
查看下面的代码。
$player_id_list = array(1,3,5,7,9,11,13,15,17,19,21);
$xml=new SimpleXMLElement($j[0]);
foreach($player_id_list as $new_player_id)
{
$result = $xml->xpath("team/PlayerDetails/player[@id=".$new_player_id."]");
echo "<pre>";
var_dump($result);
echo "</pre>";
}