10/10/2018, 10:07

How do I search xml data using javascript?

Hi các pro,
mình đang bị 1 vấn đề nho nhỏ như sau, mong các bạn giúp đỡ : Mình có 1 textbox & 1 button . Mình muốn khi người dùng nhập thông tin tìm kiếm vào textbox và chọn button thì nó sẽ tìm kiếm thông tin trong file xml, sau đó hiển thị ra nếu tìm thấy.

Ví dụ : gõ vào ID : 001, bấm search button thì nó chạy vào file xml, tìm xem nếu thấy có mã 001 thì hiển thị chi tiết của ID 001 đó .

File xml có dạng như sau :

<employees>
<employee id="5">John Doe</employee>
<employee id="6">Arnab</employee>
</employees>

Mong các bạn chỉ giúp tận tình. Cám ơn các bạn nhiều
lenggiauit viết 12:21 ngày 10/10/2018
Có phải thế này ko ?
Code:
function loadXMLDoc(dname) 
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  xmlDoc.async=false;
  xmlDoc.load(dname);
  return(xmlDoc);
  }
catch(e) {alert(e.message)}
return(null);
}
//  
// Function Load Item -----
function loadItem(xmlfile, nodename, ID)
{
		var fxml = loadXMLDoc(xmlfile);
                var AttID = fxml.getElementsByTagName(nodename).attributes.getNamedItem("id").value;
		if( AttID == ID )
                 {
                   var y = fxml.getElementsByTagName(nodename)[0].childNodes[0].nodeValue;
                   alert(y);
                 }
	
		
		
}
Chưa test chẵng biết có đúng ko nữa
ngodoan viết 12:18 ngày 10/10/2018
bạn ơi, bạn có thể giúp mình làm chi tiết hơn dc ko ? hic hic
lenggiauit viết 12:09 ngày 10/10/2018
File XML
Code:
<?xml version="1.0" encoding="utf-8"?>
<emps>
	<emp id="001">
	 <name> John</name>
	</emp>
	<emp id="002">
	<name> Mit</name>
	</emp>
</emps>
File test.html
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<script language="javascript">
function loadXMLDoc(dname) 
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  xmlDoc.async=false;
  xmlDoc.load(dname);
  return(xmlDoc);
  }
catch(e) {alert(e.message)}
return(null);
}
function loadItembyID(xml, nodename)
{
		var ID = document.getElementById('emp_ID').value;
 		var fxml = loadXMLDoc(xml);
		var x = fxml.getElementsByTagName(nodename);
		for (var i = 0; i<= x.length -1; i++)
		{
			var attID = fxml.getElementsByTagName(nodename)[i].attributes.getNamedItem("id").value;
			if(attID == ID)
			{
				var d =fxml.getElementsByTagName(nodename)[i].childNodes[0].childNodes[0].nodeValue;
				alert(d);
			}
		}

}

</script>
</head>

<body>
<input id="emp_ID"  />
<input type="button" value="click" onclick="loadItembyID('Emps.xml', 'emp')" />

</body>
</html>
Vừa test xong ok trên IE còn FF có thế ko ra do nó ko hiễu chỗ var d =fxml.getElementsByTagName(nodename)[i].childNodes[0].childNodes[0].nodeValue;
2 cái childNodes[0] FF ko hiểu
Nếu FF thì : var d =fxml.getElementsByTagName('name')[i].childNodes[0].nodeValue;
Đông Tây viết 12:22 ngày 10/10/2018
test code trên ok, cho mình hỏi Có cách nào lấy tên và vị trí cụ thể của 1 element trong xml ko nhỉ ?
haicop viết 12:12 ngày 10/10/2018
Theo mình thì bạn cần làm 2 việc
1- Đọc toàn bộ file XML thành 1 array nhiều chiều, search các hàm về XML trên php.net
2- Search ID trong array = PHP
( tìm google với "php array search"
lenggiauit viết 12:20 ngày 10/10/2018
Được gửi bởi Đông Tây
test code trên ok, cho mình hỏi Có cách nào lấy tên và vị trí cụ thể của 1 element trong xml ko nhỉ ?
Mấy dòng code đơn giản trên đó thêm vô vài cái nữa là có NodeName + vị trí của Element rồi còn gì =,=
Bài liên quan
0