解析 XML 问题

问题描述 投票:0回答:1

因此,我将实时 xml/atom-feed url 保留为不同的内容。它托管在 LiveJournal 上,但我不想透露该链接。 不管怎样,我似乎有些困惑,或者我对它的工作原理的理解很困惑:


let XML_URL = "https://users.livejournal.com/<username>/data/atom";


$(function(){

    var xmlDoc = $.parseXML(XML_URL); 
        
    var $xml = $(xmlDoc);
    
        // Find Person Tag
    var $entry = $xml.find("entry");
    
    $entry.each(function(){
        
        var title = $(this).find('title').text(),
            content = $(this).find('content').text();
        
        $("#items" ).html(title+ ' <br /> <br />' +content);
        
    });

});

和 HTML:

<!DOCTYPE html>
<html lang='en-us'>
<head>
<script type="text/javascript" src="js/jQuery.js"></script>
<script type="text/javascript" src="js/xmlreader.js"></script>
</head>
<body>

<div class="style">
    <div id="items"></div>
</div>

</body>
</html>

那么我在这里错过了什么?我需要读取文件本身吗?如果我这样做..我该怎么做?

javascript html jquery xml atom-feed
1个回答
0
投票

parseXML 将字符串解析为 XML 文档。

文档中的示例:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.parseXML demo</title>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<p id="someElement"></p>
<p id="anotherElement"></p>
 
<script>
var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>",
  xmlDoc = $.parseXML( xml ),
  $xml = $( xmlDoc ),
  $title = $xml.find( "title" );
 
// Append "RSS Title" to #someElement
$( "#someElement" ).append( $title.text() );
 
// Change the title to "XML Title"
$title.text( "XML Title" );
 
// Append "XML Title" to #anotherElement
$( "#anotherElement" ).append( $title.text() );
</script>
 
</body>
</html>

因此,您需要将实际的 XML 作为字符串加载,并使用

parseXML
而不是指向文件所在位置的 URL 来传递它。您可以在服务器端下载它并在服务器的帮助下将其生成为 HTML/JS,也可以通过 Javascript 下载它,只要您的 CSP 和 CORS 设置允许您向源发送请求即可。

© www.soinside.com 2019 - 2024. All rights reserved.