尝试使用PHP在XML文件中查找字符串

时间:2015-07-24 15:07:44

标签: php xml

我有一个KML文件,我已经改成了XML,我可以毫无问题地从中输出任何信息。但我的“description”标签有一个CDATA块,里面有HTML代码。 如果“description”标签包含“一些HTML代码”,我使用PHP回应一些东西。但是在我的XML文件中,“td”标签(正如我所说的那样位于CDATA块中)由两个换行符分隔,因此我的if语句不起作用。

我的PHP:

$a=array();
foreach($xml->Document->Folder->Placemark as $casa) {
    if(strpos($casa->description,'<td>Mob_Reduzi</td>**WHAT TO PUT HERE**<td>0</td>') !== false){
       echo "BLA BLA BLA"
    }
}

我已经尝试过PHP代码,这些代码之间有换行符,但没有任何效果。现在消除换行不是一种选择,因为有数千条线。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

根据它们的换行类型(通常取决于操作系统),您可以使用以下转义序列之一来表示字符串中的换行符:

  • \n适用于Unix / OS X
  • \r\n Windows

请注意,这些仅由PHP在双引号字符串中解释。因此,考虑到这一点(假设问题中总是有2个换行符),您可以将支票更改为:

Unix / OS X换行符:

if(strpos($casa->description,"<td>Mob_Reduzi</td>\n\n<td>0</td>") !== false){

Windows换行符:

if(strpos($casa->description,"<td>Mob_Reduzi</td>\r\n\r\n<td>0</td>") !== false){

如果有一个可变/不可预测的换行符,你可能最好使用正则表达式:http://php.net/manual/en/function.preg-match.php