在xml中访问属性

时间:2016-10-29 06:45:29

标签: php xml attributes

我有以下XML:

    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <T3FlexForms>
    <data>
    <sheet index="Slider01">
        <language index="lDEF">
            <field index="title">
                <value index="vDEF">Das ist die Headline von Slider 01</value>
            </field>
            <field index="text">
                <value index="vDEF">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</value>
                <value index="_TRANSFORM_vDEF.vDEFbase">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</value>
            </field>
            <field index="image">
                <value index="vDEF">slide01.jpg</value>
            </field>
            <field index="position">
                <value index="vDEF">left</value>
            </field>
        </language>
    </sheet>
</data>

现在我使用以下php

    $xml = simplexml_load_file('Slider01.xml');
    var_dump($xml->data->sheet->language->field[0]);

这给了我以下内容:

    object(SimpleXMLElement)#4 (2) {
      ["@attributes"]=>
      array(1) {
        ["index"]=>
        string(5) "title"
      }
      ["value"]=>
      string(34) "Das ist die Headline von Slider 01"
    }

现在我想要一个包含标题“Das ist die Headline von Slider 01”的变量,因此我需要访问该属性 - &gt;标题 - &gt;价值,但我不能让它工作。 那么我如何获取标题的价值?

您还需要进一步的信息吗?

请求帮助。

1 个答案:

答案 0 :(得分:1)

var_dump的输出中,您可以看到$xml->data->sheet->language->field[0]SimpleXMLElement的实例以及之前的属性(datasheetlanguage)。因此,您可以采用相同的方式访问value$xml->data->sheet->language->field[0]->value

$xml->data->sheet->language->field[0]->value返回的值是SimpleXMLElement的实例。该类实现了__toString方法,这意味着您可以按如下方式将其强制转换为字符串:

$xml = simplexml_load_file('Slider01.xml');
$title = (string)$xml->data->sheet->language->field[0]->value;

实例的字符串表示形式是纯文本值。