从RSS描述中删除不在标记元素

时间:2017-02-15 17:44:05

标签: javascript php html xml rss

我正在寻找从不在标签元素中的RSS描述中删除文本(即强,p,跨度等)我能够删除强元素,但我无法定位“位置”文字,因为它不在标签内。

澄清一下,我正在尝试删除

21.671N 158.117W or 5 nautical miles N of search location of 21.5928N 158.1034W.

我无法定位字符串,因为每个Feed都会有所不同。此外,我尝试将span标记应用于任何没有运气的文本。

以下是我的代码......

<?php
  $rss = simplexml_load_file('http://www.ndbc.noaa.gov/rss/ndbc_obs_search.php?lat=21.5928&lon=-158.1034&radius=100');

  $i = 0;
  foreach($rss->channel->item as $item) {
    echo "<p>" . $item->description . "</p>";
    echo '<h2><a style="font-size:12px; text-decoration:none;" href="'. $item-      >link .'">' . $item->title . "</a></h2>";
    $i++;
    if ($i >= 1){
      break;
    }
  }
?>
<script>
  document.getElementsByTagName("strong")[1].setAttribute("hidden", true);
</script>

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好像这个Feed总是有&#39;位置&#39;项目作为第二行;您可以在<br />上拆分,删除第二行,然后再次与<br />一起加入。

e.g。

foreach($rss->channel->item as $item) {
  // Split on <br />
  $descriptionBits = explode("<br />", $item->description);
  // Remove the location line
  unset($descriptionBits[1]);
  // Glue the bits back together again
  $descriptionString = implode("<br />", $descriptionBits);

  // Then print it out
  echo "<p>" . $descriptionString . "</p>";