【发布时间】:2019-02-02 02:33:42
【问题描述】:
这样做的最终目标是加载一个 XML 设置文件并能够通过 html 表单对其进行修改。我什至无法加载嵌套 XML 及其要打印的属性,这是我的第一步。
这是 XML 的一个片段:
<Settings>
<GSettings>
<Name Value="Plane"/>
<Id Value="50"/>
<Timeout Value="100"/>
</GeneralSettings>
<WingSetting>
<LeftWing Color="Red" Value="1"/>
<RightWing Value="0"/>
<MiddleBar>
<Fields>
<Value>Direction</Value>
<Value>Speed</Value>
<Value>Height</Value>
</Fields>
</MiddleBar>
</WingSetting>
因此,这样的目标是打印以下内容:
.GSettings.Name =
ATTRIBUTES:
Value = Plane
.GeneralSettings.Id =
ATTRIBUTES:
Value = 50
.GeneralSettings.Timeout =
ATTRIBUTES:
Value = 100
.WingSetting.LeftWing =
ATTRIBUTES:
Value = 1
Color = Red
.WingSetting.RightWing =
ATTRIBUTES:
Value = 0
.WingSetting.MiddleBar=
.WingSetting.MiddleBar.Fields.Value=Direction
.WingSetting.MiddleBar.Fields.Value=Speed
.WingSetting.MiddleBar.Fields.Value=Height
我能够递归打印 XML 和子项,对于中间栏字段,我可以打印速度方向和高度。但我不知道如何获取属性并在我进行时打印它们。当前代码是这样的:
$xml=simplexml_load_file("MySettings.xml");
RecurseXML($xml);
function RecurseXML($xml,$parent="")
{
$child_count = 0;
foreach($xml as $key=>$value)
{
$child_count++;
if(RecurseXML($value,$parent.".".$key) == 0)
{
echo($parent . "." . (string)$key . " = " . (string)$value . "<BR>\n");
}
}
return $child_count;
}
除了没有属性选项外,它完全按照我想要的方式打印它。我知道有一个 attributes() 选项,但我不知道如何添加它,所以它是递归的。关于如何添加它的任何想法?
【问题讨论】: