使用php解析XML文件,获取外观类型

如何解决使用php解析XML文件,获取外观类型

您好,各位程序员,自昨天以来,我一直在努力修复我的代码... 我设法从random-monster.xml文件中解析 LOOT LIST ,这部分代码很好用,但是我无法解析外观类型=“ id” 以用于 animoutfit.php?id ='。 $ look。 '”

PHP代码:

    <?php 
 

        $items = simplexml_load_file($otdir . '/data/items/items.xml') or die('<b>Could not load items!</b>'); 
        foreach($items->item as $v) 
            $itemList[(int)$v['id']] = $v['name'];   
         
        $monsters = simplexml_load_file($otdir . '/data/monster/monsters.xml') or die('<b>Could not load monsters!</b>'); 
        foreach($monsters->monster as $monster) { 
            $loot = simplexml_load_file($otdir . '/data/monster/' . $monster['file']);
            if($loot) { 
                if($item = $loot->loot->item) { 
                    echo ' 
<img src="https://blwro.pl/test/test/animoutfit.php?id='. $look . '" width="45"/>
                        <a id="' . ++$i . '" style="text-decoration: none; font: bold 21px verdana; color: orange;" href="javascript:void(0);" onclick="toggleVisibility(this)">[+] ' . $monster['name'] . '</a> 
                        <br /><div style="display: none;" id="d' . $i . '"> 
                            <pre>>>> <b></b><br /><br />'; 
                    addLoot($item); 
                    echo '</pre></div>'; 
                } elseif(isset($_GET['hideempty'])) 
                    echo '<span style="font: bold 21px verdana; color: red;">[x] ' . $monster['name'] . '</span><br />'; 
            } elseif(isset($_GET['hidefail'])) 
                echo '<span style="color: grey;">Failed to load monster <b>' . $monster[name] . '</b> <i>(' . $monster[file] . ')</i><br />'; 
        } 

        function addLoot($loot,$level=1) { 
            foreach($loot as $test) { 
                $chance = $test['chance']; 
                if(!$chance) 
                    $chance = $test['chance1']; 

                printLoot($level,$test['id'],$test['countmax'],$chance); 
                foreach($test as $k => $v) 
                    addLoot($v->item,$level + 1); 
            } 
        } 
         
        function printLoot($level,$itemid,$count,$chance) { 
            global $itemList,$rarity; 
             
            $chance /= 1000; 
            if(!isset($_GET['lootrate'])) { 
                global $lootRate; 
                $chance *= $lootRate; 
            } 
             
            foreach($rarity as $lootRarity => $percent){ 
                if($chance >= $percent) { 
                    echo str_repeat("",$level) . '<span style="color: #7878FF; font: bold 21px verdana; font-weight: 21px bold; "><u>' . ($count ? $count : 1) . '</u><img src="https://blwro.pl/items/'. $itemid . '.png" width="45"/> <span style="color: #7878FF; font: bold 21px verdana; font-weight: 21px bold; ">' . $itemList[(int)$itemid] . '</span> ' . $item . ' <span style="color: #312f66; font: bold 21px verdana; font-weight: bold;">' . $lootRarity . '</span> (<span style="color: #b51919; font: bold 21px verdana;">' . $chance . '%</span>)<br />'; 
                    break; 
                } 
            } 
        } 
        ?> 

示例XML文件:

    <?xml version="1.0" encoding="UTF-8"?>
<monster name="Arrancarnar" nameDescription="a Arrancarnar" race="undead" experience="206000" speed="360" manacost="90000">
    <health now="315000" max="315000"/>
    <look type="341" head="0" body="123" legs="97" feet="94" corpse="6068"/>
    <targetchange interval="10000" chance="20"/>
    <strategy attack="100" defense="0"/>
    <flags>
        <flag summonable="0"/>
        <flag attackable="1"/>
        <flag hostile="1"/>
        <flag illusionable="0"/>
        <flag convinceable="0"/>
        <flag pushable="0"/>
        <flag canpushitems="1"/>
        <flag canpushcreatures="1"/>
        <flag staticattack="98"/>
        <flag targetdistance="1"/>
        <flag runonhealth="500"/>
    </flags>
    <attacks>
        <attack name="death" interval="1200" min="-6200" max="-12350"/>
        <attack name="death" interval="1500" chance="34" range="7" radius="1" target="1" min="-4920" max="-8270">
            <attribute key="shootEffect" value="whirlwindsword"/>
            <attribute key="areaEffect" value="redspark"/>
        </attack>
        <attack name="death" interval="1500" chance="50" length="6" spread="0" min="-6500" max="-9700">
            <attribute key="areaEffect" value="mortarea"/>
        </attack>
        <attack name="death" interval="1000" chance="35" range="7" radius="4" target="0" min="-8200" max="-13500">
            <attribute key="areaEffect" value="mortarea"/>
        </attack>
    </attacks>
    <defenses armor="195" defense="205">
        <defense name="healing" interval="3000" chance="45" min="500" max="50000">
            <attribute key="areaEffect" value="blueshimmer"/>
        </defense>
        <defense name="speed" interval="4000" chance="80" speedchange="440" duration="6000">
            <attribute key="areaEffect" value="redshimmer"/>
        </defense>
    </defenses>
    <elements>
        <element firePercent="0"/>
        <element energyPercent="0"/>
        <element icePercent="0"/>
        <element earthPercent="0"/>
        <element holyPercent="0"/>
        <element physicalPercent="0"/>
        <element deathPercent="100"/>
    </elements>
    <immunities>
        <immunity physical="0"/>
        <immunity energy="0"/>
        <immunity fire="0"/>
        <immunity poison="0"/>
        <immunity lifedrain="0"/>
        <immunity paralyze="1"/>
        <immunity outfit="1"/>
        <immunity drunk="1"/>
        <immunity invisible="1"/>
    </immunities>
    <voices interval="5000" chance="30">
        <voice sentence="No one can stop me!"/>
        <voice sentence="Hahaha!" yell="1"/>
        <voice sentence="I will drain you'r soul!" yell="1"/>
    </voices>
    <loot>
        <item id="2160" countmax="3" chance="6000"/><!-- platinium -->
        <item id="10556" chance="5"/><!-- Hollow Ichigo Mask-->
        <item id="10555" chance="5"/><!-- Hollow Ichigo Mask-->
        <item id="2195" chance="10000"/><!-- boots of haste -->
        <item id="7899" chance="12000"/><!--Shinigami Coua-->
        <item id="7894" chance="12000"/><!-- Shinigami Legs -->
        <item id="2152" countmax="10" chance="60000"/><!-- platinum coin -->
    </loot>
</monster>

我删除了带有“外观”的部分,因为它不起作用/崩溃了整个脚本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-