このような方法で XML からテキストを抽出しようとしています:
[テキスト] [テキスト内の選択] [テキストの続き] [別のテキスト] [別の選択] [別のテキストの続き]
私はこれを部分的に行うことができたので、最初の段落と最初の段落の選択肢を抽出しますが、2 番目の段落の選択肢を抽出しません。理由はわかりません。(この例では、最初の段落と 2 番目の段落の選択肢は同じです)。
さらに、選択した選択肢のインデックスをphpとmysqlに投稿するためにAJAXを使用していますが、選択肢をどのように分離できるかわかりません。(例: 第 1 選択 -->1、第 2 選択 -->3 など)
私のコードは次のとおりです。
function parseXml(xml)
{
var myArray = [];
var i = 0;
//Megkeressük az összes paragrafust
$(xml).find("Paragraph").each(function()
{
$(this).find("text").each(function(){
{
$("#wrapper").append('<div id="text">' + $(this).text()) + '</div><br />';
$("#text").append('<div id="choice"></div>');
}
});
});
//Each paragraph
$(xml).find("Paragraph").each(function()
{ //Megkeressük az összes választékot
$(this).find("choice").each(function()
{
myArray.push($(this).text());
});
});
$("#choice").append(' ' + myArray[i] + ' ');
sendValue(i);
$("#choice").click(function() {
if(i + 1 >= myArray.length)
{
i=0;
$("#choice").html(' ' + myArray[i] + ' ');
sendValue(i);
}
else
{ i++;
$("#choice").html(' ' + myArray[i] + ' ');
sendValue(i);
}
});
function sendValue(str){
// post(file, data, callback, type); (only "file" is required)
$.post(
"ajax.php", //Ajax file
{ sendValue: str }, // create an object will all values
//function that is called when server returns a value.
function(data){
$('#i').text(data.returnValue);
},
//How you want the data formated when it is returned from the server.
"json"
);
}
}
PHP:
<?php
//Get Post Variables. The name is the same as
//what was in the object that was sent in the jQuery
if (isset($_POST['sendValue'])){
$value = $_POST['sendValue'];
}else{
$value = "";
}
//Because we want to use json, we have to place things in an array and encode it for json.
//This will give us a nice javascript object on the front side.
echo json_encode(array("returnValue"=>"This is returned from PHP : ".$value));
?>
XML:
<?xml version="1.0" encoding="utf-8" ?>
<Page1>
<Paragraph>
<text>This is the first text in the</text><choice>paragraph</choice><choice>book</choice><choice>mádörfákör</choice><choice>asd</choice><text>after which the text continues.</text>
</Paragraph>
<Paragraph>
<text>This is the SECOND text in the</text><choice>paragraph</choice><choice>book</choice><choice>mádörfákör</choice><choice>asd</choice><text>after which the second text continues.</text>
</Paragraph>
</Page1>