0

我有一个文本文件“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");
}

?>

它实际上是一个 html 文件,而不是 txt 文件,如果这有什么不同的话。

谢谢

4

1 回答 1

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");
于 2013-07-19T01:32:42.393 回答