PHP XML如何输出漂亮的格式

9 浏览
0 Comments

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的。

这一切如何实现?

0
0 Comments

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数据了。

0
0 Comments

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并输出漂亮的格式。以上的代码示例可以帮助我们实现这个目标。

0
0 Comments

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有所帮助。

0