加载,读取XML文件但保存为间距的文件文本

时间:2015-09-15 07:45:03

标签: php xml

我刚刚加载了xml文件并立即保存,但随后它变成了文本文件。 我的XML结构很简单:

<?xml version="1.0" encoding="UTF-8"?>
<ContentInfo>
    <Content>
        <PlayerID>P1</PlayerID>
        <TVID>TV1</TVID>
        <TVStatus>0</TVStatus>
    </Content>  
</ContentInfo>

这是我的php代码:

<script type="text/javascript" src="jquery-2.1.4.js"></script>
<?php
ob_start();
$xml = new DOMDocument('1.0');
$xml->encoding = 'UTF-8';
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->load('TV_Status.xml');
htmlentities($xml->save('TV_Status.xml'));
header("Refresh: 120;url='index.php'");
 ?>

它会自动更改为文本文件,尽管它仍然以xml文件结尾,仍然可以编辑。

3 个答案:

答案 0 :(得分:0)

XML文件是文本文件。应该没有问题:https://en.wikipedia.org/wiki/XML

答案 1 :(得分:0)

我刚刚尝试过,新编写的文件看起来与源文件几乎完全相同。

XML是文本。

您应该删除ob_start();。如果你的意思是格式不像你想要的那样,那么你应该玩这个部分

$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;

一点。

答案 2 :(得分:0)

XML文件是文本文件。具有应用程序可以解析的特定语法的文本文件。默认情况下,如果您将数据发送到浏览器,PHP将发送数据为HTML的附加信息(HTTP标头)。如果浏览器以HTML格式接收数据,它将尝试解析并呈现它。 XML语法使用可比较的语法,因此XML标记被解析为HTML,但被忽略为未知的HTML标记。浏览器显示XML文件的文本内容。

您可以更改该行为,发送不同的内容类型标题:

以XML格式发送:

header("Content-Type: application/xml");
readfile('TV_Status.xml');

以文字形式发送:

header("Content-Type: text/plain");
readfile('TV_Status.xml');

您无需为此加载和解析XML文件,只需阅读并使用readfile()将其传递给浏览器。