用用户定义的字段/值解析XML文件


parse an xml file with user defined fields/values

我正在尝试解析XML文件。具有以下结构:

 <verwaltung_objekt>
 <objektadresse_freigeben>false</objektadresse_freigeben>
    <geschlecht />
    <user_defined_simplefield feldname="Immobilie des Monats">Ja</user_defined_simplefield>
            <user_defined_simplefield feldname="Energie">A</user_defined_simplefield>
</verwaltung_objekt>

试试下面的代码:

 foreach($xml -> verwaltung_objekt -> user_defined_simplefield as $simplefield) {
foreach($simplefield->attributes() as $a => $b) {
    echo $a,'="',$b,"'"'n";
    }
}

得到'feldname=" immobile des Monats"'和'feldname="Energie"'。但是我怎样才能得到"不动的Monats"的价值呢?

谢谢你的帮助。

的问候托马斯。

如果您想通过使用特定属性访问该值,您可以使用该属性。用针(Immobilie des Monats),你可以比较一下。考虑这个例子:

$raw = '<verwaltung_objekt> <objektadresse_freigeben>false</objektadresse_freigeben> <geschlecht /> <user_defined_simplefield feldname="Immobilie des Monats">Ja</user_defined_simplefield> <user_defined_simplefield feldname="Energie">A</user_defined_simplefield></verwaltung_objekt>';
$xml = simplexml_load_string($raw);
$data = array();
foreach($xml as $key => $value) {
    if($value->attributes()['feldname'] == 'Immobilie des Monats') {
        echo $value;
    }
}
// outputs: Ja

在我看来你只看属性:

foreach($simplefield->attributes()

所以你需要查看节点值,所以无论你使用什么解析器,我都会查看节点值,而不是它的属性:

foreach($simplefield->nodeValue

希望有帮助,

迈克。