Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 PHP и XML - Expat, DOM, SimpleXML
  1. PHP и XML - Expat Parser
  2. PHP и XML - DOM Parser
  3. PHP и XML - SimpleXML
DIVASTATOR
     
Автор  DIVASTATOR (01.07.2007 21:36)  съобщение до автора
Погледнат  7440 пъти  добави към любими
Оценка  добави коментар
Гласове  1  изпрати на приятел
Коментари  (0)  абонирай се за XML
    Страница 1 / 3

 



В този урок ще поговорим за връзката между PHP и XML. Но преди това трябва да си припомним какво беше XML. Това е език, който описва информацията, и по точно структурата на тази информация. XML означава Extensible Markup Langugae. Което от своя страна значи, че вие определяте таговете. Ако искате да научите повече за XML разгледайте уроците в It-place на тази тема. А сега да се върнем към темата на урока. Връзките м/у PHP и XML са 3 на брой. Това са: PHP XML Expat Parser, PHP XML DOM и PHP XML SimpleXML. Ще разгледаме всеки един вид подробно:

1. PHP XML Expat Parser – за да виждате, променяте или създавате XML файл ви трябва така наречения XML Parser. Има 2 основни типа parser–и:

  А) С дървовидна структура – преобразува XML документа в дървовидна структура. Така се анализира  целия файл,  и се дава достъп до елементите.
  Б) Базирани на събития – показва XML документа като серия от събития. Когато особено събитие се случи, то извиква функция, която да го обработи.

PHP XML Expat Parser е Parser базиран на събития, но не се отнася към структурата, а към съдържанието (информацията) на документа. Точно заради тази разновидност, този вид Parser –и имат по-голямо бързодействие от дървовидните Parser –и.Ето един пример:

CODE
1
<from>Jani</from>

Parser базиран на събития описва този пример по следния начин:

  • Начален елемент : <from>
  • Начална CDATA селекция, стойност : Jani
  • Завършващ елемент : </from>

Документа по-горе е добре формиран, но не е валиден XML файл, защото няма Document Type Definition (DTD) в него. Все пак това не пречи на Expat Parser –а, защото той е независим от всякаква валидация. Но ако не документа не е формиран добре, е възможно да се появят грешки. Фактът че този Parser е бърз и малък го прави идеалният помошник на PHP апликациите. Този е Parser е включен в самото PHP ядро, което го прави още по-лесен за използване. Сега нека да разгледаме и пример, как да използваме Expat Parser –а с PHP. XML документа изглежда по следния начин:

CODE
1
2
3
4
5
6
7
<?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?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);
?>

Изходния код:

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

Как работи:

1.Парафира XML parser -а с функцията xml_parser_create().
2.Създава функция, която да се използва от различен event handler.
3.Добавя функцията xml_set_element_handler()  за да определи коя функция да оперира след като parser -а започне да прави рзбор на елементите.
4.Добавя функцията xml_set_character_data_handler()  за да определи коя функция да оперира след като parser -а започне да прави рзбора на данните.
5.Разбива файлът "test.xml" с функцията xml_parse().
6.Ако се появи грешка, добавя функцията  xml_error_string() за да конвертира XML грешката в текст.
7.Извиква функцията xml_parser_free() за да покаже това, което е записано във функцията xml_parser_create() .



  Следваща страница >> 


Ключови думи: PHP xml PHP5 dom Document Object Model API интерфейс Xpath Simple XML XSLT domxml libxml xml документ


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: DIVASTATOR  
Какво мога да кажа за мен.Аз съм на 17 години от гр. София.Занимавам се с Web Design не професионално (като хоби ми е), но смятам да си искам да си изкарвам хляба с това.За момента нямам готови качени в интернет сайтове, но сега работя над един и се надявам скоро да го има.Това е.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008