Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP和URL变量动态显示XML_Php_Xml_Url_Dynamic - Fatal编程技术网

使用PHP和URL变量动态显示XML

使用PHP和URL变量动态显示XML,php,xml,url,dynamic,Php,Xml,Url,Dynamic,我是一名游戏作者和设计师,我们使用XML文件作为对话引擎。我试图在一个网站上显示对话供我的团队查看,我希望能够基于URL变量动态显示XML的某些部分或“章节”。我使用PHP来实现这一点 下面是一个非常简单的XML结构示例: <dialogues> <dialogue id="0"> <line id="0_1" name="John">Line 1</line> <line id="0_2" name=

我是一名游戏作者和设计师,我们使用XML文件作为对话引擎。我试图在一个网站上显示对话供我的团队查看,我希望能够基于URL变量动态显示XML的某些部分或“章节”。我使用PHP来实现这一点

下面是一个非常简单的XML结构示例:

<dialogues>
    <dialogue id="0">
        <line id="0_1" name="John">Line 1</line>
        <line id="0_2" name="Eric">Line 2</line>
        <line id="0_3" name="Ben">Line 3</line>
    </dialogue>
    <dialogue id="1">
        <line id="1_1" name="Sarah">Line 1</line>
        <line id="1_2" name="Jessica">Line 2</line>
        <line id="1_3" name="Kelly">Line 3</line>
    </dialogue>
</dialogues>

所以你可以看到我有一个
$chapter
变量,我会在URL中得到
?c=
,我只是不知道从那里做什么。我将如何处理这段代码,以仅显示(比如)基于URL中的
?c=1
中的行?

尝试使用xpath;它是为这种情况设计的。下面是一个如何获得每一行对话的示例

foreach ($xml->xpath("//dialogue[@*])/line") as $line)
     echo $line;

这里有一个有用的参考资源,过去发生在我身上。:)XML?第一个想法:xpath:)它也适用于格式良好的html。如果这解决了您的问题,请标记为:)
foreach ($xml->xpath("//dialogue[@*])/line") as $line)
     echo $line;