PDA

Tam Sürümünü Görmek İçin : JavaScript ile XML parser


Düzgün
07/06/2003, 01:20
Herhangi bir sitedeki XML dokümanını
java script ile okuyup nasıl statik html ye parse edebilirim.
activeobject() kullanarak bi kaç componentidenememe rahmen bunu yapmada başarısız oldum...


Düzgün
09/06/2003, 01:02
<script type="text/javascript">
<!--
var objXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
objXMLHTTP.open("GET", "http://www.donanimhaber.com/xml/fiyatlistesi14.xml", false);
objXMLHTTP.send(null);
var objXML = objXMLHTTP.responseXML;
var arrFiyat = objXML.getElementsByTagName("item");
document.write ("<table>")
for(var x=0;x<arrFiyat.length;x++) {
document.write ("<tr><td>")
document.write (arrFiyat[x].childNodes[0].text);
document.write ("</td><td>")
document.write (arrFiyat[x].childNodes[1].text);
document.write ("</td></tr>")
}
document.write ("</table>")
//-->
</script>

muharrem_tac
09/06/2003, 02:04
Bu çözümün dışında da çözümler var.Buradaki kod takdir edersiniz ki başka işletim sistemlerinde çalışmayacaktır.Adım Adım XML kitabında örnekleri mevcut.

Düzgün
09/06/2003, 20:28
Bunlar net tür çözümler örnek copy paste edebilirmisin.
diğer yandan Netcape ve Opera' da ne yapılması gerek.

muharrem_tac
09/06/2003, 23:21
XML 'i html'e XMLDSO olarak dahil edip sonra bunun elementleri üzerinde XMLDOM'u kullansak olmaz mı?Yoksa tüm veriyi bir XML parser ile mi almak koşulu gerekiyor?Mesela aşağıda bir arama sayfası örneği var:

Tüm kitap örneklerini indirmek için:

www.muharremtac.com/xmlkitap.zip


<HEAD>

<TITLE>Book Finder</TITLE>

</HEAD>

<BODY>

<XML ID="dsoInventory" SRC="Inventory Big.xml"></XML>

<H2>Find a Book</H2>

Title text: <INPUT TYPE="TEXT" ID="SearchText">&nbsp
<BUTTON ONCLICK='FindBooks()'>Search</BUTTON>
<HR>
Results:<P>
<DIV ID=ResultDiv></DIV>

<SCRIPT LANGUAGE="JavaScript">
function FindBooks ()
{
SearchString = SearchText.value.toUpperCase();
if (SearchString == "")
{
ResultDiv.innerHTML = "&ltYou must enter text into "
+ "'Title text' box.&gt";
return;
}

dsoInventory.recordset.moveFirst();

ResultHTML = "";
while (!dsoInventory.recordset.EOF)
{
TitleString = dsoInventory.recordset("TITLE").value;

if (TitleString.toUpperCase().indexOf(SearchString)
>=0)
ResultHTML += "<I>"
+ dsoInventory.recordset("TITLE")
+ "</I>, "
+ "<B>"
+ dsoInventory.recordset("AUTHOR")
+ "</B>, "
+ dsoInventory.recordset("BINDING")
+ ", "
+ dsoInventory.recordset("PAGES")
+ " pages, "
+ dsoInventory.recordset("PRICE")
+ "<P>";

dsoInventory.recordset.moveNext();
}

if (ResultHTML == "")
ResultDiv.innerHTML = "&ltno books found&gt";
else
ResultDiv.innerHTML = ResultHTML;
}
</SCRIPT>

</BODY>

</HTML>

caldera
15/04/2007, 22:14
çok eski bi konu olsada, bu kodu firefoxda çalıştırmak için ne yapmak lazım, bilen var mı ?

anov
15/04/2007, 22:41
jsan dan bir link. deneyiniz.

http://openjsan.org/doc/k/ka/kawasaki/XML/ObjTree/0.24/lib/XML/ObjTree.html

caldera
16/04/2007, 00:20
ilgin için teşekkürler ama pek yardımcı olmadı, asıl öğrenmek istediğim yukardaki scriptte xml, recordset olarak kullanılmış. aslında ben bunu daha önceden başka yerlerde kullanmıştım. ancak firefoxda çalışmıyor ne yazıkki, örneğin
dsoInventory.recordset.moveFirst();
şeklinde kullanamıyorsunuz , bu yötemle yada bu yöntemi aratmayacak başka bi yöntemle, javascripte demeliyimki, bak kardeş bu senin xml veritabanın, bana içindeki şu verileri getir, şunlarıda getirme. bu gelen verileride sırayla git şu comboboxa doldur...