2014-05-04 48 views
0

我在導入的RSS提要和包含一系列包含在列表項中的SVG的HTML文件之間遇到問題。 (下面編輯SVG摘錄的HTML)任何一個或其他顯示都沒有問題。將兩者結合在一起後,image.html會顯示第一個JPG,但不會顯示後面的SVG或PNG。我認爲這與XML(?)有衝突,我希望這是一個明確的解釋。與SVG衝突的RSS提要

image.html(編輯節選)>>>

<li class="layer" data-depth="0.02"> 
    <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" viewBox="0 0 1080 1080"> 
    <g transform="translate(0 .00002)"> 
    <path fill="#bababa" d="m.06">  
    </g> 
    </svg>  
</li> 

PHP(節選)>>>

<ul id="scene" class="scene"> 
    <li class="layer" data-depth="0.0"><img src="/images/lightStudy_8.jpg"></li> 
    <?php include('image.html'); ?> 
    <li class="layer" data-depth="0.4"><img src="/images/nologo.png"></li> 
    <li class="layer" data-depth="0.6"><img src="/images/nologo_white.png"></li> 
</ul> 

<div class="wrapper"> 
    <!-- page content --> 
    <?php 
    $XMLFILE = "http://something/default?alt=rss"; 
    $TEMPLATE = "http://something/sample-template.html"; 
    $MAXITEMS = "5"; 
    include("rss2html.php"); 
    ?> 
</div> 

回答

0

我還沒有發現這個問題引起我認爲有衝突使用XML。 我與SVG一起工作很多,所以我仍然想知道原因,以便將來避免出現問題。不過,我只是要使用一種方法。我不是這方面的專家,我找到了一個我可以處理的解析器,並用我自己的HTTP取代了HTTP,而只是您希望顯示的帖子的數量。

此外,{$ item ['DESCRIPTION']}是從數組中提取該值的方法。不知道標準化訂閱源是如何標準化的,我只是通過XML feed(通過瀏覽器)進行搜索,以查看我想要顯示的信息以及遵循語法的標籤。

規定,立即爲我工作的源低於或等於: http://www.stemkoski.com/how-to-easily-parse-a-rss-feed-with-php-4-or-php-5/

<?php 

//FUNCTION TO PARSE RSS IN PHP 4 OR PHP 4 
function parseRSS($url) { 

//PARSE RSS FEED 
    $feedeed = implode('', file($url)); 
    $parser = xml_parser_create(); 
    xml_parse_into_struct($parser, $feedeed, $valueals, $index); 
    xml_parser_free($parser); 

//CONSTRUCT ARRAY 
    foreach($valueals as $keyey => $valueal){ 
     if($valueal['type'] != 'cdata') { 
      $item[$keyey] = $valueal; 
     } 
    } 

    $i = 0; 

    foreach($item as $key => $value){ 

     if($value['type'] == 'open') { 

      $i++; 
      $itemame[$i] = $value['tag']; 

     } elseif($value['type'] == 'close') { 

      $feed = $values[$i]; 
      $item = $itemame[$i]; 
      $i--; 

      if(count($values[$i])>1){ 
       $values[$i][$item][] = $feed; 
      } else { 
       $values[$i][$item] = $feed; 
      } 

     } else { 
      $values[$i][$value['tag']] = $value['value']; 
     } 
    } 

//RETURN ARRAY VALUES 
    return $values[0]; 
} 


/********************************************************************************************  
********************** 
SAMPLE USAGE OF FUNCTION 
******************************************************************************************** 
*********************/ 

//PARSE THE RSS FEED INTO ARRAY 
$xml = parseRSS("http://SomeBlog.com/feeds/posts/default?alt=rss"); 

//SAMPLE USAGE OF 
$n=1; 
foreach($xml['RSS']['CHANNEL']['ITEM'] as $item) { 
if($n<=5) {  
     echo("<article>"); 
     echo("<h3 class=\"title\"><a href=\"{$item['LINK']}\" target=\"_blank\">  
{$item['TITLE']}{$link}</a></h3>"); 
     $pdate = $item['PUBDATE']; 
     echo("<h4>".$pdate."</h4>"); 
     echo("<div class=\"description\">{$item['DESCRIPTION']}</div>"); 
     echo("</article>"); 
    } 
    $n++; 
} 

?>