【发布时间】:2014-11-06 09:49:38
【问题描述】:
我的 foreach 循环有问题。但看起来我的知识还不足以找出问题所在。我的代码很简单:
$xnl_file = "xml.xml";
$xml = simplexml_load_file($xnl_file);
$my_file = 0;
foreach ($xml as $value){
var_dump($value);
$CountryOrganizationId = "<CountryOrganizationId>".$xml->Partnership->CountryOrganizationId."</CountryOrganizationId>";
$PartnershipId = "<PartnershipId>".$xml->Partnership->PartnershipId."</PartnershipId>";
$OwnerId = "<OwnerId>".$xml->Partnership->OwnerId."<OwnerId>";
$PartnerIdList = "<PartnerIdList><String>".$xml->Partnership->PartnerIdList->String."</String></PartnerIdList>";
$CountryOrganizationId_contact = "<Contract><CountryOrganizationId>".$xml->Partnership->Contract->CountryOrganizationId."</CountryOrganizationId>";
$ContractId = "<ContractId>".$xml->Partnership->Contract->ContractId."</ContractId>";
$data = "<Partnership>".$CountryOrganizationId.$PartnershipId.$OwnerId.$PartnerIdList.$CountryOrganizationId_contact.$ContractId.$Role1.$Category1.$Rate1.
$Role2.$Category2.$Rate2.$Role3.$Category3.$Rate3."</Partnership>";
echo $data;
}
我正在从 XML 获取数据并尝试在多个上解析它,但这只是一次又一次地复制相同的数据。我不确定我做错了什么。在我看来,数据应该在每次循环都做同样的事情时相互重写,但它们并没有改变。在 echo $data 我得到尽可能多的结果,问题是它们是一样的。
如果我在开始时 var_dump $value 我会得到很好的结果,即数据正在循环,但为什么输出总是相同?
有人可以给我建议吗?
谢谢
【问题讨论】:
-
想要达到什么目的?我建议你看看
simplexml_load_file函数返回了什么。如果您在此处发布输出,我们将更有能力提供帮助。但请指定一个问题。 -
看起来您在循环中使用的是 $xml 而不是 $value->Partnership。
-
输出如下:`CZContract_58AB4635-D9C6-A04EMM-O-BDD15299MM-O-2A10BCFCZContract_58AB4635-D9C6-A04ELabor1250.0Paint2350.0Labor1250.0 ------------- -------------------------------------------------- ----- CZContract_58AB4635-D9C6-A04EMM-O-BDD15299MM-O-2A10BCFCZContract_58AB4635-D9C6-A04ELabor1250.0Paint2350.0Labor1250.0 ---------- ---------------------------------------------- CZContract_58AB4635-D9C6- A04EMM-O-BDD15299MM-O-2A10BCFCZContract_58AB4635-D9C6-A04ELabor1250.0Paint2350.0Labor1250.0 ------------------------------- --------------------------------------