我有一个文本文件,“abc.txt”,我想通过jQuery .post()调用来阅读。该文件有三个部分:section1,section2和section3。我想在jQuery中做一些聪明的事情,让我分别拉出section1,section2和section3文本。我的第一个想法是修改文件以标记xml类型括号的部分,如
<section1>The section 1 text</section1>
<section2>The section 2 text</section2>
<section3>The section 3 text</section3>
然后post()调用可能类似于
fileName = "abc.txt"
$.post('loadPage.php', {fileName : fileName},function(xml) {
var sect1= $(xml).find("section1");
},
"xml"); // dataType
但这在几个层面失败了。首先,最后的“xml”数据类型似乎使post()不起作用。我想我的小xml标签并没有欺骗ajax认为它是xml数据。其次,如果我省略了dataType,我会收回东西,但是$(xml).find(“section1”);爆炸了。
我有什么地方可以在这里工作吗?
loadPage.php如下所示:
<?php
$siteName = $_POST['siteName'];
$fileName = "{$siteName}_sav.html";
$fileSize = filesize($fileName);
$filePath = $_SERVER['DOCUMENT_ROOT'] . "/" . $fileName;
echo ("<br /> reading $fileSize bytes from $filePath");
$site_fp = fopen( $filePath, 'r');
$xml = fread($site_fp, $fileSize);
if($xml) {
echo ("<br />xml: " . htmlspecialchars($xml));
}
else {
echo ("<br />Read from $fileName failed");
}
&GT;
它实际上是一个html文件,而不是txt文件,如果这有任何区别。
由于
答案 0 :(得分:0)
从适当的XML开始
<?xml version="1.0" encoding="ISO-8859-1"?> // or whatever
<section1>The section 1 text</section1>
<section2>The section 2 text</section2>
<section2>The section 3 text</section3>
并且因为它们是根元素,您应该使用filter()
而不是find()
,但最好的选择可能是将xml附加到另一个元素,因此它可以以任何方式工作:
fileName = "abc.txt"
$.post('loadPage.php', {fileName : fileName}, function(xml) {
var sect1 = $('<div />').append(xml).find("section1");
}, "xml");