我想在我的xml中添加三倍间距,但浏览器正在将三倍间距更改为单一。我发现 
用于包含间距。我有一个制表符分隔的文本文件,我正在使用PHP将其转换为xml。为了在我的标题节点中有三重间距我就是这样做的。
$xml->startElement('Products');
while ($line = fgetcsv($fp, 0, "\t")) {
$xml->startElement('Product');
//replacing titlesingle space to triple space
$title = str_replace(" ", "   ", $line[1]);
$xml->writeElement('title', $title);
.....
$xml->endElement();
}
$xml->endElement();
}
但 
更改为 
,标题是这样的
<title>A&#160;&#160;&#160;Test</title>
基本上php正在改变&amp;放大器,但我想要精确,以便我可以在标题中有三倍间距
<title>A Test</title>
任何帮助??
答案 0 :(得分:1)
它不会改变间距。但是在HTML / XML中,几个空格通常(并不总是)呈现为单个空格或换行符。
#160;
是非破坏性的空间。其中一个用途是分离电话号码的各个部分。您不希望电话号码中的某个空格呈现为换行符。
此字符的UTF-8字节为\xC2\xA0
。
$xml->writeElement('foo', "foo\xC2\xA0&\xC2\xA0bar");
如果XML文档的编码是ASCII,则它们将被编码为实体。
$xml = new XMLWriter();
$xml->openMemory();
$xml->startDocument('1.0', 'ASCII');
$xml->writeElement('foo', "foo\xC2\xA0&\xC2\xA0bar");
$xml->endDocument();
echo $xml->outputMemory(TRUE);
输出:
<?xml version="1.0" encoding="ASCII"?>
<foo>foo & bar</foo>