我正在尝试将节点值保存到数组中。这是XML结构:
<wildcards>
<conference id="1">
<seeds>
<seed divId="1">10,7,17</seed>
<seed divId="2">8,5,3</seed>
</seeds>
<wild>2,4</wild>
<elimination>11,6,14,1,13,12,20,15</elimination>
</conference>
</wildcards>
The xml file can be found here
我想将会议1的节点值与数组键相关联,它们是通配符标记中的位置。这是我的代码:
$xmlDoc = new DOMDocument();
$xmlDoc->load('http://www.tsn.ca/datafiles/XML/NHL/standings.xml');
$searchNode = $xmlDoc->getElementsByTagName('wildcards');
foreach ($searchNode as $node) {
$conference1 = $node->getElementsByTagName('conference');
$conference1 = $conference1->item(0)->nodeValue;
}
echo $conference1;
// $conference1 = str_replace(" ",",",$conference1);
$conference1Array = explode(',', $conference1);
$conference1ArrayLength = count($conference1Array) ;
for ($i = 1; $i < $conference1ArrayLength; $i++) {
echo $i.": ".$conference1Array[$i-1];
echo "<br/>";
}
If you go to this website,你可以看到我当前的输出。我试图用字符串替换空格并在&#39;,&#39;上爆炸。获得正确的数组,但它不起作用。
conference1的输出为:10,7,17 8,5,3 2,4 11,6,14,1,13,12,20,15
。即使有空格,替换也不起作用。
我需要在17,3和4之后使用逗号。我们的想法是将团队ID的密钥插入名为seed
的数据库中的列中。然后,我可以使用PHP来确定与表输出的每个分区/通配符关联的数字。以下是密钥与团队ID /节点值关联的含义:
团队ID:10 - &gt; 1(第1分区)
团队ID:7 - &gt; 2(第1分区第2)
团队ID:17 - &gt; 3(第1区第3)
团队ID:8 - &gt; 4(第2分区第1)
团队ID:5 - &gt; 5(第2分区第2)
团队ID:3 - &gt; 6(第3分区第3)
团队ID:2 - &gt; 7(通配符1)
团队ID:4 - &gt; 8(通配符2)
团队ID:所有其余的(已淘汰)
我尝试使用code from this link分别获取节点值,但我无法弄清楚如何让它与我的情况一起工作。顺便说一句,我还没有尝试过我的代码。
编辑:我查看了所提供的链接,并提出了以下建议:
$searchNode = $xmlDoc->getElementsByTagName('wildcards');
$divData = array();
foreach($searchNode as $node){
foreach($node->childNodes as $child) {
foreach($child->childNodes as $secondChild) {
foreach($secondChild->childNodes as $thirdChild) {
$divData[] = array($thirdChild->nodeName => $thirdChild->nodeValue);
}
}
}
}