PHP和XML:每个页面请求解析大型XML文件的成本

时间:2009-07-31 11:25:27

标签: php xml model-view-controller dom parsing

在每个页面请求中使用PHP解析大型XML文件的成本是多少?

我想用HTML实现自定义标记。

<?xml version="1.0"?>
<html>
    <head>
        <title>The Title</title>
    </head>
    <body>
        <textbox name="txtUsername" />
    </body>
</html>

在PHP中加载此XML文件后,我使用XPath搜索自定义标记并操作或替换它们。

这是非常昂贵还是可以接受? 如何将其应用于大型网站?

在过去,我还将XSLT用于大型网站,但它似乎并没有减慢速度。这与XSLT类似,但是手动。

3 个答案:

答案 0 :(得分:2)

我觉得非常昂贵,但最好的方法是自己测试并测量运行脚本所需的峰值内存使用和时间。

你可能能够缓存一些中间状态,这样就不必每次都进行繁重的XML解析 - 也许你可以用像Smarty这样的实际PHP代码替换标签,然后包含生成/缓存的PHP文件代替。

缓存的文件看起来像Soulmerge的答案中的代码。

答案 1 :(得分:2)

  

这是非常昂贵还是可以接受?

不要猜。 Measure

答案 2 :(得分:1)

解析xml应该很快,只要你使用内置函数如DOMXPath并且你的xml文件不是太大。

但是,我宁愿用函数调用替换自定义标记,并将文件包含在php中,这应该更快 lot ,因为你没有在PHP中进行任何字符串操作:

<?xml version="1.0"?>
<html>
    <head>
        <title>The Title</title>
    </head>
    <body>
        <?php textbox('txtUsername') ?>
    </body>
</html>