使用web.config将XML解析为PHP

时间:2016-06-04 08:24:33

标签: php asp.net xml azure

我有一个XML文档,我需要在其中放置一些有关IP的信息。问题是在Apache中将XML解析为PHP可以使用.htaccess来完成,但是当我转移到Azure时,它变得更难了。 我尝试了什么:

  • 的web.config

    <?xml version="1.0"?>
    
    <configuration>
        <system.webServer>
            <staticContent>
                <mimeMap fileExtension=".xml" mimeType="text/php" />
         </staticContent>
        </system.webServer>
    </configuration> 
    
  • 的applicationHost.config

    <system.webServer>
          <staticContent>
               <mimeMap fileExtension=".xml" mimeType="text/php" />
          </staticContent>
    </system.webServer>
    
  • .htaccess:AddType application/x-httpd-php .php .xml

但这一切都无效。我因错误的XML而出错。需要帮忙。 XML文件:

<config>
     <settings ip="<?php /*getting external IP...*/ ?>" port="1010"/>
</config>

更新 我看了一下标题,它说Content-Typeapplication/xml

2 个答案:

答案 0 :(得分:0)

好的,我发现除了制作单独的PHP文件之外别无他法。

<?php
header("Content-Type: application/xml");
$myip = "0.0.0.0";
echo '<config><settings ip="' . $myip . '" port="1010"/>';
include("myxml.xml");
?>

答案 1 :(得分:0)

我处理这种情况的方式,当我没有时间深入了解服务器配置,或者无法修改服务器配置时,创建一个目录,其中包含我要解析的文件的名称作为PHP,以及该文件中的index.php,它处理需要完成的任务。例如:

myxml.xml/index.php(与this answer中的index.php完全相同) myxml.xml/myxml.xml(可以包含php代码)

在此配置中,myxml.xml的客户请求被重定向到myxml.xml/index.php,然后myxml.xml/myxml.xml