Php 加载、读取XML文件,但以空格保存为文件文本
我刚刚加载了xml文件并立即保存,但随后它变成了文本文件。 我的XML结构在这里很简单:Php 加载、读取XML文件,但以空格保存为文件文本,php,xml,Php,Xml,我刚刚加载了xml文件并立即保存,但随后它变成了文本文件。 我的XML结构在这里很简单: <?xml version="1.0" encoding="UTF-8"?> <ContentInfo> <Content> <PlayerID>P1</PlayerID> <TVID>TV1</TVID> <TVStatus>0</TVStatus&
<?xml version="1.0" encoding="UTF-8"?>
<ContentInfo>
<Content>
<PlayerID>P1</PlayerID>
<TVID>TV1</TVID>
<TVStatus>0</TVStatus>
</Content>
</ContentInfo>
P1
TV1
0
以下是我的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'");
?>
编码='UTF-8';
$xml->formatOutput=true;
$xml->preserveWhiteSpace=false;
$xml->load('TV_Status.xml');
htmlentities($xml->save('TV_Status.xml');
标题(“刷新:120;url='index.php'”;
?>
它会自动更改为文本文件,尽管它仍然以xml文件结尾,并且仍然可以编辑。xml文件是文本文件。应该没有问题:我刚刚试过,新编写的文件看起来与源文件几乎完全相同 XML是文本 您应该删除
ob_start()代码>。如果您的意思是格式与您希望的不一样,那么您应该使用此部分
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
有点。XML文件是文本文件。具有应用程序可以解析的特定语法的文本文件。默认情况下,如果将数据发送到浏览器,PHP将发送一个附加信息(HTTP头),说明数据是HTML。如果浏览器以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()
将其读取并传递到浏览器“它成为文本文件”是什么意思?XML是文本,所以应该是正确的。对不起,用空格编辑的文本不是XML格式