我正在使用PHP。我是XML的新手。我想将所有值设置为变量以在其他地方使用。
例如,<property name="HoldType" value="4" />
我想将$ holdtype_value设置为等于4.
进一步复杂化; <property class="Action0">
有一个名为=&#34; Class&#34;的子属性,Action1属性也是如此。我需要这些值的变量。
以下是XML中的示例项。有些项目具有或多或少的属性。
<item id="24" name="hoe">
<property name="Meshfile" value="Items/Tools/hoe_iron" />
<property name="Material" value="metal" />
<property name="HoldType" value="4" />
<property name="Stacknumber" value="1" />
<property name="RepairTools" value="forgedIron" />
<property name="Degradation" value="300" param1="true" />
<property name="SoundDestroy" value="wooddestroy1" />
<property name="FuelValue" value="24" />
<property name="Weight" value="32" />
<property class="Action0">
<!-- AttackAction -->
<property name="Class" value="Melee" />
<property name="Delay" value="2.1" />
<property name="Range" value="2" />
<property name="Sphere" value="0.2" />
<property name="Block_range" value="4" />
<property name="DamageEntity" value="5" />
<property name="DamageBlock" value="1" />
<property name="Sound_start" value="swoosh" />
<property name="Stamina_usage" value="8" />
<property name="DamageBonus.earth" value="2" />
<property name="DamageBonus.glass" value="25" />
<property name="DamageBonus.head" value="4" />
</property>
<property class="Action1">
<!-- UseAction -->
<property name="Class" value="MakeFertile" />
<property name="Delay" value="2.1" />
<property name="Block_range" value="4" />
<property name="DamageBlock" value="1" />
<property name="Sound_start" value="swoosh" />
<property name="Sound_end" value="UseActions/repair_block" />
<property name="Fertileblock" value="fertileFarmland" />
<property name="Adjacentblock" value="dirt" />
</property>
<property name="Group" value="Tools/Traps" />
<property class="Preview">
<property name="Zoom" value="0" />
<property name="Pos" value="0,0" />
</property>
<property name="ActionSkillGroup" value="Mining Tools"/>
<property name="CraftingSkillGroup" value="Tool Smithing"/>
</item>
答案 0 :(得分:0)
您需要使用DOM
,特别是DOMDocument::loadXML()
进行调查:http://php.net/manual/en/domdocument.loadxml.php
这将允许您加载文档,然后以各种方式遍历它,设置元素(节点),属性等。从文档加载XML字符串的快速示例......
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
/* ... traverse the document here ... do your stuff ... */
echo $doc->saveXML();
PHP中有大量关于DOM支持的帮助文档,tuts等。
编辑: 以上内容适用于您将遇到的95%的XML,但如果您要加载大量XML文件,那么我想要不要看PHP的SimpleXML。 DOM一次加载整个文档,而SimpleXML允许您一次遍历一行文档。这意味着大文件没有内存问题。