PHP XML如何输出漂亮的格式
PHP XML如何输出漂亮的格式
以下是代码:
$doc = new DomDocument('1.0'); // 创建根节点 $root = $doc->createElement('root'); $root = $doc->appendChild($root); $signed_values = array('a' => 'eee', 'b' => 'sd', 'c' => 'df'); // 逐行处理 foreach ($signed_values as $key => $val) { // 为每一行添加节点 $occ = $doc->createElement('error'); $occ = $root->appendChild($occ); // 为每个字段添加子节点 foreach ($signed_values as $fieldname => $fieldvalue) { $child = $doc->createElement($fieldname); $child = $occ->appendChild($child); $value = $doc->createTextNode($fieldvalue); $value = $child->appendChild($value); } } // 获取完整的XML文档 $xml_string = $doc->saveXML() ; echo $xml_string;
如果我在浏览器中打印它,我得到的XML结构不像
\n tab 等。
我只得到
ee
而且我想要它是utf-8的。
这一切如何实现?
PHP XML如何输出漂亮的格式
在PHP中,我们经常需要处理XML数据,并将其以漂亮的格式输出。但是,默认情况下,使用DOMDocument类输出的XML数据是没有缩进和换行的,这样使得XML数据不易阅读和理解。那么我们该如何解决这个问题呢?
解决方法如下:
方法一:
我们可以在创建DOMDocument对象后,设置preserveWhiteSpace和formatOutput两个参数,来实现漂亮的XML格式输出。代码如下:
$doc = new DomDocument('1.0'); $doc->preserveWhiteSpace = false; $doc->formatOutput = true;
方法二:
我们也可以在获取XML文档之后,通过设置preserveWhiteSpace和formatOutput两个参数,来实现漂亮的XML格式输出。代码如下:
$doc->preserveWhiteSpace = false; $doc->formatOutput = true; $xml_string = $doc->saveXML(); echo $xml_string;
无论是方法一还是方法二,输出结果都将是漂亮的格式,如下所示:
eee sd df eee sd df eee sd df
但是,注意到DOMDocument类似乎没有提供修改缩进字符的方法。如果我们希望将缩进字符修改为制表符\t,我们可以使用正则表达式的preg_replace函数进行替换,代码如下:
$xml_string = preg_replace('/(?:^|\G) /um', "\t", $xml_string);
另外,我们还可以使用tidy扩展中的tidy_repair_string函数来实现漂亮的XML格式输出。tidy扩展可以指定缩进级别,但是它不会输出制表符。代码如下:
tidy_repair_string($xml_string, ['input-xml' => 1, 'indent' => 1, 'wrap' => 0]);
通过设置DOMDocument类的preserveWhiteSpace和formatOutput参数,我们可以轻松实现漂亮的XML格式输出。如果需要修改缩进字符,我们可以使用正则表达式或者tidy扩展来实现。这样,我们就能够更好地阅读和理解XML数据了。
PHP XML如何输出漂亮格式
有时候,我们在使用PHP处理XML数据时,希望将XML以漂亮的格式输出。然而,通过SimpleXML对象直接输出的XML可能会以一种不太美观的方式呈现,这可能不符合我们的期望。
为了解决这个问题,我们可以使用DOMDocument类来处理XML并输出漂亮的格式。下面是解决方法的代码示例:
$domxml = new DOMDocument('1.0'); $domxml->preserveWhiteSpace = false; $domxml->formatOutput = true; /* $xml SimpleXMLElement */ $domxml->loadXML($xml->asXML()); $domxml->save($newfile);
在上述代码中,我们首先创建一个DOMDocument对象,指定XML的版本为1.0。然后,我们将`preserveWhiteSpace`属性设置为false,以便在输出XML时删除多余的空格和缩进。接下来,我们将`formatOutput`属性设置为true,以确保XML以漂亮的格式输出。
然后,我们使用`loadXML`方法将SimpleXML对象加载到DOMDocument对象中,然后使用`save`方法将DOMDocument对象保存为一个新文件,新文件的路径由`$newfile`指定。
如果需要指定XML的编码方式为UTF-8,我们可以在`loadXML`方法之后添加一行代码:`$domxml->encoding = "UTF-8"`。
通过以上的处理,我们可以将SimpleXML对象以漂亮的格式输出,并保存为一个新的XML文件。
总结起来,通过使用DOMDocument类,我们可以简单地处理XML并输出漂亮的格式。以上的代码示例可以帮助我们实现这个目标。
PHP XML如何输出漂亮的格式
在PHP中,处理XML文件是很常见的任务。然而,有时候我们可能会遇到输出的XML格式并不漂亮的问题。本文将介绍这个问题产生的原因以及解决方法。
问题的原因是,当我们使用DOMDocument类加载XML文件并输出时,默认情况下输出的XML并不会进行格式化,而是以紧凑的形式呈现。这可能导致XML文件在阅读或调试时变得困难,特别是当XML文件很大或嵌套层级很深时。
为了解决这个问题,我们可以通过设置DOMDocument类的preserveWhiteSpace和formatOutput属性来实现输出漂亮格式的XML。下面是示例代码:
preserveWhiteSpace = false; $dom->formatOutput = true; // End initial block $dom->loadXML($xml); $out = $dom->saveXML(); print_R($out); ?>
在上述代码中,我们首先创建了一个DOMDocument对象,然后通过设置preserveWhiteSpace属性为false和formatOutput属性为true,来实现输出漂亮格式的XML。preserveWhiteSpace属性的设置可以移除XML中的空白节点,formatOutput属性的设置可以使XML以漂亮的格式进行输出。
最后,我们使用loadXML方法加载XML字符串,然后使用saveXML方法将XML保存到变量$out中,并通过print_R函数输出。
通过以上的设置,我们可以确保输出的XML以漂亮的格式呈现,使得XML文件更易于阅读和调试。
希望本文对你理解PHP中如何输出漂亮格式的XML有所帮助。