我刚刚加载了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文件结尾,仍然可以编辑。
答案 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()
将其传递给浏览器。