我正在尝试使用PHP将XML文件转换为CSV,但我对标记内的某些值的空格有问题。 这是XML:
<Product>
<Code>1234</Code>
<Name>product name</Name>
<Category>some category</Category>
<Manufacturer>manufacturer</Manufacturer>
<Price> 100</Price>
<Stock>1</Stock>
</Product>
正如您所看到的,Price标签内部有很多空格,这与我的CSV格式混淆。我试过这个,但它不起作用:
$Product->Price = preg_replace("/>\s+</", "><", $Product->Price);
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:2)
试试trim()
。来自php manual:
此函数返回一个字符串,其中删除了空格 str的开头和结尾如果没有第二个参数,trim()将会 剥去这些字符:
“”(ASCII 32(0x20)),一个普通的空格。 “\ t”(ASCII 9(0x09)),a 标签。 “\ n”(ASCII 10(0x0A)),一个新行(换行符)。 “\ r”(ASCII 13 (0x0D)),回车。 “\ 0”(ASCII 0(0x00)),NUL字节。 “\ x0B”(ASCII 11(0x0B)),垂直制表符。
答案 1 :(得分:0)
你的正则表达式正在寻找<
,但它应该寻找一个数字。尝试
$Product->Price = preg_replace("/>\s+[0-9]</", "><", $Product->Price);
您可以在此页面上测试php preg_ *函数:http://www.fullonrobotchubby.co.uk/random/preg_tester/preg_tester.php
答案 2 :(得分:0)
如果可以,请使用其他人花时间编写的解析器:
答案 3 :(得分:0)
认为你已经过度复杂了......
$Product->Price = preg_replace("/\s/","",$Product->Price);