RSS提要与SVG冲突

时间:2014-05-04 17:51:06

标签: php html xml svg rss

我在导入的RSS Feed和包含在列表项中包含的一组SVG的包含HTML文件之间遇到了问题。 (下面带有编辑过的SVG摘录的HTML)一个或另一个显示没有问题。两者都包含在一起,image.html确实显示第一个JPG,但不显示随后的SVG或PNG。我在想与XML存在冲突(?)我希望这是一个明确的解释。

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(摘录)&gt;&gt;&gt;

<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>

1 个答案:

答案 0 :(得分:0)

我仍然没有找到导致我认为与XML有关的冲突的问题。 我和SVG一起工作很多,所以我仍然想知道原因,以便将来可以避免出现问题。但是,我只是要使用一种方法。不是这个东西的高手,我找到了一个我可以处理的解析器并用我自己的HTTP取代了,而 N 只是你希望显示的帖子的数量。

此外,{$ item ['DESCRIPTION']}是从数组中提取该值的方法。不知道标准化的提要是怎样的,我只是通过XML提要(通过浏览器)搜索,看看我想要显示的信息使用了哪些标签,并遵循语法。

立即为我工作的来源在下面或在: 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++;
}

?>