PDA

View Full Version : مشکل ِ خواندن از xml و ایجاد جدول در html



sas523
یک شنبه 28 تیر 1388, 00:47 صبح
با سلام و خسته نباشید

دوستان من یه فایل xml درام که کدش به این صورته

>

Countries>
<C1 name = "porteghal">
<D>ir</D>

</C1>
<C2 name ="Italy">
<D>it</D>
</C2>

</Countries
<

حالا میخوام این رو تو تگ اسکریپت در تگ head از فایل html ام قرار بدم ؛

کدی که نوشتم به این شکل ه اما syntax error میده



documenet.write(" <table border="1px">
<tr>
<td>Name</td>
<td>Domain</td>
<td>Code</td>
</tr>");
for (i =0 ; i < (xmlObj.childNodes.Length); i++)
{
document.write('<tr>');
document.write('<td>'+xmlObj.childNodes(1).getAttribute("name")+'</td>');
document.write('<td>'+xmlObj.childNodes(1).childNodes(0).text +'</td>');
document.write('<td>'+xmlObj.childNodes(1).childNodes(1).text +'</td>');
document.write('</tr>');
}
document.write('</table>');



ممنون میشم کمک کنید؛

dannydolph
یک شنبه 28 تیر 1388, 10:43 صبح
دوست عزیز کدی رو که گذاشتی اولاً بزار تو تگ html دوماً کامل بزارش تا بشه جواب داد.الان xmlObj اصلاً چی هست؟کدت رو کامل کن.:متفکر:

sas523
یک شنبه 28 تیر 1388, 17:40 عصر
مرسی از توجهت

ببین دوست عزیز ؛ از من خطای syntax میگیره ، من فکر کنم تو دابل کوتیشن
گذاریم مشکلی وجود داره اما نمیدونم کجاش هر کاری هم کردم درست نشد

ممنون میشم بازم راهنماییم کنی




<script language="javascript" type="text/javascript">
var xmlDoc = new ActiveXObject ("Microsoft.XMLDOM");
function LoadFile (xml)
{
xmlDoc.async = "false";
xmlDoc.onreadystatechange = Check ;
xmlDoc.load(xml) ;
xmlObj = xmlDoc.documentElement;
}

function Check()
{

if (xmlDoc.readyState != 4 )
{

return false ;
}
}

LoadFile('Table.xml');
document.write(" <table border="1">
<tr>
<td>name</td>
<td>Domain</td>
<td>Code</td>
</tr> ");
for (int i =0 ; i < (xmlObj.childNodes.Length); i++)
{
document.write("<tr>");
document.write("<td>+xmlObj.childNodes(i).getAttribute("name")+</td>");
document.write("<td>+xmlObj.childNodes(i).childNodes(0).text +</td>");
document.write("<td>+xmlObj.childNodes(i).childNodes(1).text +</td>");
document.write("</tr>");
}
document.write("</table>");

</script>
</head>

<body>
</body>
</html>

eAmin
یک شنبه 28 تیر 1388, 20:19 عصر
سلام.

دوست عزیز، کد شما از بیخ و بن(!) ایراد داره... کد اصلاح شده شما:

<script type="text/javascript">

var xmlDoc = new ActiveXObject ("Microsoft.XMLDOM");
var xmlObj;
function LoadFile (xml)
{
xmlDoc.async = "false";
xmlDoc.onreadystatechange = Check ;
xmlDoc.load(xml) ;
xmlObj = xmlDoc.documentElement;
}

function Check()
{

if (xmlDoc.readyState != 4 )
{

return false ;
}
}

LoadFile('Table.xml');
document.write("<table border='1'>"+
"<tr>"+
" <td>name</td>"+
" <td>Domain</td>"+
" <td>Code</td>"+
"</tr>");

for (var i = 0 ; i < xmlObj.childNodes.length; i++)
{
document.write("<tr>");
document.write("<td>"+xmlObj.childNodes[i].getAttribute("name")+"</td>");
document.write("<td>"+xmlObj.childNodes[i].childNodes[i].text+"</td>");
document.write("<td>"+xmlObj.childNodes[i].childNodes[i].text+"</td>");
document.write("</tr>");
}

document.write("</table>");

</script>
</head>

<body>
</body>
</html>این رو امتحان کنید شاید درست کار کرد، ولی بنده پیشنهاد می کنم، یه سری هم به این تاپیک بزنید:
http://barnamenevis.org/forum/showthread.php?t=167504

sas523
دوشنبه 29 تیر 1388, 13:50 عصر
ممنون دوست ِ عزیز ؛

ای بابا بیخ و بُن ؟ مهندس یکم خوش بینانه تر نگاه کن
منکه گفتم تو کوتیشن گذاریش اشکال داره اما نمی دونم چه جوریه

مرسی از کد که اصلاحش کردی؛

الان فقط ردیف اول ه جدولم رو-یعنی همون تیتر ها رو - نشون میده کله جدول رو کامل نمیاره ؛

چونکه باید از xml بخونه و کامل بیاردش اما این کارو نمیکنه؛

فایل xmlهم به این صورته ؛
حالا ممنون میشم بگید که چرا کل ِجدول رو نشون نمیده




<Countries>
<C1 name = "iran">
<D>ir</D>
</C1>

<C2 name ="Italy">
<D>it</D>
</C2>

</Countries>

dannydolph
دوشنبه 29 تیر 1388, 19:31 عصر
شرمنده دوست عزیز که نتونستم به موقع جواب بدم.آخه یه کم سرم شلوغه و باید بیام یکی یکی پست هارو چک کنم ببینم چه خبره.کاشکی مثل مجید آنلاین با ایمیل خبر دار میشدیم.ولی حالا بگذریم.من اینو دیدم.یه سری تغییرات دادم ولی قسمت اصلیش که مشکل داست این جا بود:



document.write("<td>"+xmlObj.childNodes[i].childNodes[0].text+"</td>");
document.write("<td>"+xmlObj.childNodes[i].childNodes[0].text+"</td>");




حالا اینم کد کاملش :



<script type="text/javascript">
var xmlDoc = new ActiveXObject ("Microsoft.XMLDOM");
var xmlObj;
function LoadFile (xml)
{
xmlDoc.async = "false";
xmlDoc.onreadystatechange = Check ;
xmlDoc.load(xml) ;
}
function Check()
{

if (xmlDoc.readyState == 4 )
{
xmlObj = xmlDoc.documentElement;
document.write("<table border='1'>"+
"<tr>"+
" <td>name</td>"+
" <td>Domain</td>"+
" <td>Code</td>"+
"</tr>");
for (i = 0 ; i < xmlObj.childNodes.length; i++)
{
document.write("<tr>");
document.write("<td>"+xmlObj.childNodes[i].getAttribute("name")+"</td>");
document.write("<td>"+xmlObj.childNodes[i].childNodes[0].text+"</td>");
document.write("<td>"+xmlObj.childNodes[i].childNodes[0].text+"</td>");
document.write("</tr>");
alert(xmlObj.childNodes.length+" "+i)
}
document.write("</table>");

}
}
LoadFile('table.xml');
</script>
</head>
<body>
</body>
</html>

sas523
دوشنبه 29 تیر 1388, 20:22 عصر
با تشکر از دوستمون dannydolph (http://barnamenevis.org/forum/member.php?u=108996) ؛
قبلا جنابِAmin eHelp (http://barnamenevis.org/forum/member.php?u=58981) زحمت کشیدن و درست کردن کد رو ؛

حالا خواستم بگم که تونستم جدول رو کامل نشون بدم ؛
تنها تغییری که باید صورت میدادم این بود که پارامتر داخل تابعمون رو تو Single quotation بزرایم همین !

اشکال کارمون این بود که داخل دابل کوتیشن میزاشتیم


document.write("<td>"+xmlObj.childNodes[i].getAttribute('name')+"</td>");


از راهنمایی همه ی دوستان متشکرم

mobtadi2009
یک شنبه 23 اسفند 1388, 09:17 صبح
ممنون و سپاسگزارم