如何用值读取XML id并通过PHP更新它

时间:2013-08-25 07:08:10

标签: php xml simplexml

我的XML:

<WorkingTime>
    <FromTime>08:00</FromTime>
    <ToTime>11:00</ToTime>
    <Name>Izpit</Name>
    <Owner>Marko</Owner>
    <Category>
        <School Professor="111" Room="1" Subject="882" />
    </Category>
</WorkingTime>

<Professors>
    <Professor email="xxx" id="111" code="String">Name 1</Professor>
    <Professor email="xxx" id="222" code="String">Name 2</Professor>
    <Professor email="xxx" id="333" code="String">Name 3</Professor>
</Professors>
<Rooms>
    <Room id="1">IA-301</Room>
    <Room id="2">A-302</Room>
    <Room id="3">A-303</Room>
    <Room id="4">A-304</Room>
    <Room id="5">A-305</Room>
    <Room id="6">A-306</Room>

</Rooms>
<Subjects>
    <Subject id="881">Vaje</Subject>
    <Subject id="882">Kolokvij</Subject>
    <Subject id="883">Predmet</Subject>
    <Subject id="884">Izpit</Subject>
</Subjects>

我现在如何在php中打印Professor

我可以id赞成:

$professor = $workingTime->Category->School->attributes()->Professor;
$room      = $workingTime->Category->School->attributes()->Room;
$subject   = $workingTime->Category->School->attributes()->Subject;

但现在如何获得价值:

我试试这个但是空的:

echo $xml->Professors->Professor[$professor];

如何更新值。

我想保存:

<Category>
    <School Professor="222" Room="2" Subject="883" />
</Category>

我正在使用dom_import_simplexmlsimplexml_load_file

1 个答案:

答案 0 :(得分:2)

教授是一个元素,而不是一个属性。因此,使用attributes()访问该元素是没有意义的,不起作用,并且 - 正如您在问题中已明确写出的那样 - 让您成为一个“空”元素。

另一方面, id 是一个属性,可以通过这种方式访问​​。

但是对于这两种情况,我建议你按照PHP手册中基本SimpleXML示例中给出的描述进行操作,这是一个很好的入门级教程:

在Stackoverflow上,您需要搜索btw的具体问题。不要问所有问题,例如Q&amp; A材料,如:

我希望这有助于您获得所需的信息。如果您在网站上找到关于您需要涵盖的主题以及您遗失某些内容的更好的问答,请告诉我。