因此,我将实时 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>
那么我在这里错过了什么?我需要读取文件本身吗?如果我这样做..我该怎么做?
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 设置允许您向源发送请求即可。