读取值可以通过DOMElement::nodeValue:
<?php
$dom = new DOMDocument();
$dom->load("data.xml");
$input = $dom->getElementsByTagName('input');
foreach($input as $inputs){
$name= $inputs->getAttribute('name');
$value = $inputs->nodeValue; //reading the value
echo "$name = $value<br>";
}
通知
要对此进行测试,必须更正 XML 示例:在第一个块中,<input> 元素以 </field> 关闭。这必须更改为</input>。
您要求一个数组。这取决于您在应用程序中需要数据的方式。
这里有两种可能性,应该会给你一个继续前进的想法:
a) 创建一个数组(简单的方法)
<?php
$dom = new DOMDocument();
$dom->load("data.xml");
$array=array(); //init
$input = $dom->getElementsByTagName('input');
foreach($input as $inputs){
$name= $inputs->getAttribute('name');
$value = $inputs->nodeValue;
//adding a value
$array[]=array(
'name' => $name,
'value' => $value,
);
}
// as an example, just print it
print_r($array);
你会得到这样的东西:
Array
(
[0] => Array
(
[name] => id
[value] => 1
)
[1] => Array
(
[name] => name
[value] => Steven Law
)
[2] => Array
(
[name] => position
[value] => Sales Manager
)
[3] => Array
(
[name] => id
[value] => 2
)
[4] => Array
(
[name] => name
[value] => Martin Wow
)
[5] => Array
(
[name] => position
[value] => Production
)
[6] => Array
(
[name] => id
[value] => 3
)
[7] => Array
(
[name] => name
[value] => Mike Pan
)
[8] => Array
(
[name] => position
[value] => Office boy
)
)
b) 创建一个数组(以后用起来更方便)
<?php
$dom = new DOMDocument();
$dom->load("data.xml");
//init
$array=array();
//get all form tags
$forms=$dom->getElementsByTagName('form');
foreach($forms as $form) {
//get all input-Tags from this form
$input = $form->getElementsByTagName('input');
//create an empty element
$element=array();
//walk through the input elements of the current form element
foreach($input as $inputs){
$name= $inputs->getAttribute('name');
$value = $inputs->nodeValue;
//add the data to the element
$element[$name]=$value;
}
//add the element to your array
$array[]=$element;
}
// as an example, just print it
print_r($array);
在这里,您将首先浏览您的 <form> 元素。然后,在每种形式中,您都阅读了<input> 元素。因此,您将获得包含输入的每个表单块的条目:
Array
(
[0] => Array
(
[id] => 1
[name] => Steven Law
[position] => Sales Manager
)
[1] => Array
(
[id] => 2
[name] => Martin Wow
[position] => Production
)
[2] => Array
(
[id] => 3
[name] => Mike Pan
[position] => Office boy
)
)