如何读取XML id';s的值,并通过PHP进行更新


how to read XML id's with value and update it by PHP

我的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

Professor是一个元素,而不是属性。因此,使用attributes()访问该元素毫无意义,不起作用,而且——正如你已经在问题中明确指出的那样——会给你一个"空"元素。

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

然而,对于这两种情况,我建议您遵循PHP手册中基本SimpleXML示例中的描述,这是一个很好的入门级教程:

  • SimpleXML的基本用法

在Stackoverflow上,你需要搜索具体的问题,顺便说一句,不要把所有的问题都问在一起,例如Q&类似的材料

  • 从SimpleXML访问@属性
  • php-simpleXML如何访问与其他元素同名的特定元素
  • 使用simpleXML编辑XML

我希望这能帮助你获得你想要的信息。如果你找到更好的问答,请告诉我;网站上有一个关于你需要涵盖的主题,以及你是否遗漏了什么。