الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في XML Parser

بدأه for.you في 4 سبتمبر 2011 · 2 رد · 566 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم استخمدت هذا المثال لقراءة الrssfeed

XML File

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

PHP Code

<?php
//Initialize the XML parser
$parser=xml_parser_create();

//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
  {
  switch($element_name)
    {
    case "NOTE":
    echo "-- Note --<br />";
    break;
    case "TO":
    echo "To: ";
    break;
    case "FROM":
    echo "From: ";
    break;
    case "HEADING":
    echo "Heading: ";
    break;
    case "BODY":
    echo "Message: ";
    }
  }

//Function to use at the end of an element
function stop($parser,$element_name)
  {
  echo "<br />";
  }

//Function to use when finding character data
function char($parser,$data)
  {
  echo $data;
  }

//Specify element handler
xml_set_element_handler($parser,"start","stop");

//Specify data handler
xml_set_character_data_handler($parser,"char");

//Open XML file
$fp=fopen("test.xml","r");

//Read data
while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or
  die (sprintf("XML Error: %s at line %d",
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }

//Free the XML parser
xml_parser_free($parser);
?>

The output of the code above will be:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

المطلوب هو مثلا طريقة وضع محتوى<to> الي هو = Tove في متغير اسمه $to مثلا لكي اقوم بحفظه في قاعدة البيانات

للتوضيح

$to = <to>;

$from = <from>;

صارلي اكثر من 7 ايام على هالمشكلة وهذا رابط للفائدة الي بيساعدني بدعيله ليل نهار 24 ساعه الله يخليكم الي يعرف يفيدني باي معلومه مهمى كانت بسيطه ^^

http://www.php.net/manual/en/book.xml.php

#2

في الدالة start، قم بحفظ ال node الحالي، ثم في الدالة char، تحقق من إسم ال node الذي قمت بحفظه، فإذا كان TO قم بحفظ المحتوى في المتغير $to، وإذا كان FROM، احفظه في $from

الكود بعد التعديل

<?php
//Initialize the XML parser
$parser=xml_parser_create();

$to = '';
$from = '';
$currentNode = '';

//Function to use at the start of an element
function start($parser,$element_name,$element_attrs) {
	global $currentNode, $to, $from;

	switch($element_name) {
		case "NOTE":
			$currentNode = 'NOTE';
			break;
		case "TO":
			$currentNode = 'TO';
			break;
		case "FROM":
			$currentNode = 'FROM';
			break;
		case "HEADING":
			$currentNode = 'HEADING';
			break;
		case "BODY":		
			$currentNode = 'BODY';
			break;
		default:
			$currentNode = '';
	}
}

//Function to use at the end of an element
function stop($parser,$element_name) {
	$currentNode = '';
}

//Function to use when finding character data
function char($parser,$data) {
	global $currentNode, $to, $from;
  	switch($currentNode) {
		case "TO":
			$to .= $data;
			break;
		case "FROM":
			$from .= $data;
			break;
	}
}

//Specify element handler
xml_set_element_handler($parser,"start","stop");

//Specify data handler
xml_set_character_data_handler($parser,"char");

//Open XML file
$fp=fopen("test.xml","r");

//Read data
while ($data=fread($fp,4096)) {
  xml_parse($parser,$data,feof($fp)) or
  die (sprintf("XML Error: %s at line %d",
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
}

echo " TO: $to <br /> FROM: $from";

//Free the XML parser
xml_parser_free($parser);
?>
2
#3

herch : مشكوووووووووووووووووووووووووووووور ويعطيك العافية الله يوفقك دنيا واخره

مواضيع مشابهة