View Full Version : خواندن از فایل XML با جاوا اسکریپت
fazel-d
جمعه 19 تیر 1388, 10:24 صبح
با سلام
آیا می توان یک فایل XML را با جاوااسکریپت خواند؟
من می خوام توی فایلم (XML) که هر تگش یه ID منحصر به فرد دارد رو بخونم و در یک تگ <P> بریزم
امیدوارم منظورم را فهمیده باشید.
raravaice
جمعه 19 تیر 1388, 12:27 عصر
با جاوا اسکریپت امکان باز گشایی فایل را ندارید ولی میتوانید محتویات یک فایل را به صورت text در یک متغییر جاوا اسکریپت ذخیره کنید و پردازش خود را انجام دهید.
در IE با استفاده از :
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(yourtext);
و برای دیگر مرورگرها :
parser=new DOMParser();
xmlDoc=parser.parseFromString(yourtext,"text/xml");
که با استفاده از getElementsByTagName و childNodes و nodeValue میتوانید به راحتی به هدف مورد نظر برسید.
موفق باشید
eAmin
جمعه 19 تیر 1388, 21:47 عصر
سلام.
با جاوا اسکریپت امکان باز گشایی فایل را ندارید
در مورد فایلهای xml این قضیه یه خرده فرق می کنه، raravaice جان. (;
قبلا در فروم دیگه به این سوال پاسخ داده شده، اگر مایل بودید می تونید به اون آدرس مراجعه کنید.
http://forum.p30world.com/showthread.php?t=327316
raravaice
شنبه 20 تیر 1388, 13:41 عصر
جالب بود. نمونه کد را اینجا هم بزار بفرستمش توی فهرست ;)
موفق باشید
fazel-d
شنبه 20 تیر 1388, 19:42 عصر
<html>
<head>
<script type="text/javascript">
function loadXMLDoc(dname)
{
var xmlDoc;
if (window.XMLHttpRequest)
{
xmlDoc=new window.XMLHttpRequest();
xmlDoc.open("GET",dname,false);
xmlDoc.send("");
return xmlDoc.responseXML;
}
// IE 5 and IE 6
else if (ActiveXObject("Microsoft.XMLDOM"))
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load(dname);
return xmlDoc;
}
alert("Error loading document");
return null;
}
</script>
</head>
<body>
<h1>W3Schools Internal Note</h1>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
<script type="text/javascript">
xmlDoc=loadXMLDoc("note.xml");
document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
من کد بالا رو با ASP.NET 3.5 تست کردم ولی بعضی از Property ها و توابع رو نداره
قابل بحثه در فرم ASP.NET
منبع W3Schools.com
fazel-d
شنبه 20 تیر 1388, 19:44 عصر
سایت http://forum.p30world.com/showthread.php?t=327316
// works only in ie, ff & opera
window.onload = function() {
var xml = new oXML();
xml.load("tt.xml");
if (window.clipboardData) {
xml.async = false;
if (xml.readyState == 4) {
callback(xml);
}
} else {
xml.onload = function() { callback(xml) };
}
};
function oXML() {
return (window.ActiveXObject) ?
new ActiveXObject('Microsoft.XMLDOM') :
document.implementation.createDocument('', '', null);
}
function callback(xml) {
var nodes = xml.getElementsByTagName("test");
for (var i = 0; i < nodes.length; i++) {
var ele = nodes[i].getElementsByTagName("name")[0].childNodes[0];
// Lo00oL, thanx to neopersia ( Yaser ), ;)
var val;
try {
val = ele.nodeValue;
}
catch(e) {
val = ele.textContent;
}
alert(val);
}
};
// xml
<?xml version="1.0" encoding="UTF-8" ?>
<test>
<name>eAmin</name>
</test>
ashid098
جمعه 19 دی 1393, 06:43 صبح
سلام میشه فایل ها رو ویرایش هم کرد البته شدن که میشه اخه من ی کد دارم ولی درست کار نمی کنه فقط یکبار کار میکنه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.