我有两行XML数据,它们是属性,但也包含内部数据,它们是重复字段。它们存储在SimpleXML变量中。
<inputField Type="Name">John Doe</inputField>
<inputField Type="DateOfHire">Tomorrow</inputField>
(显然这不是真实的数据,但语法实际上在我的数据中,我只是在其中使用字符串数据)
我见过的所有内容都表示要访问这样的数据,我已经尝试过它并且完美无缺。但我的数据是动态的,因此数据并不总是在同一个地方,所以它不符合我的需要。
$xmlFile->inputField[0];
$xmlFile->inputField[1];
这可以正常工作,直到缺少其中一行,我可以有0到5行。所以我想知道的是有什么方法可以通过属性名称访问数据吗?所以可能是这样的。
$xmlFile->inputField['Name'];
或
$xmlFile->inputField->Name;
我严格使用这些作为示例来说明我正在尝试做的事情,我知道上面的代码行都没有语法正确。
请注意,此信息是在外部生成的,因此我无法更改格式。
如果有人需要澄清,请随时告诉我,并乐意详细说明。
答案 0 :(得分:0)
也许是这样的?
echo $xmlFile->inputField->attributest()->Name;
你在用什么? DOMDocument还是simplexml?
答案 1 :(得分:0)
您没有说,但我认为您正在使用SimpleXMLElement
?
如果您想访问每个项目,只需迭代:
foreach ($xmlFile->inputField as $inputField) { ... }
如果要访问属性,请使用数组表示法:
$inputField['Type']
如果您只想访问一个特定元素,请使用xpath:
$xmlFile->xpath('inputField[@Type="Name"]');
也许您应该阅读basic examples of usage in the SimpleXMLElement documentation?
答案 2 :(得分:0)
例如,您可以抓取数据:
$xmlFile = simplexml_load_file($file);
foreach($xmlFile->inputField as $res) {
echo $res["Name"];
}