Главная / Программирование /
Язык программирования PHP / Тест 14
Язык программирования PHP - тест 14
Упражнение 1:
Номер 1
Какая комбинация технологий позволяет получить HTML-документы?
Ответ:
 (1) XML + XSLT 
 (2) XSLT + DTD 
 (3) XML + DTD 
Номер 2
Укажите правильный заголовок XML-документа.
Ответ:
 (1) <?xml version='1.0' encoding='UTF-16' standalone='yes' ?>
 
 (2) <?xml version='1.0' encoding='iso-8859-5' standalone='yes' ?>
 
 (3) <?xml encoding='UTF-16' standalone='yes' ?>
 
Номер 3
Какие технологии можно использовать для того, чтобы создавать xml-документы, соответствующие выбранному XML-языку?
Ответ:
 (1) DTD 
 (2) Schema 
 (3) DOM 
Упражнение 2:
Номер 1
Какими отношениями могут быть связаны элементы в XML- документах?
Ответ:
 (1) родитель\потомок 
 (2) отношение равенства 
 (3) брат\сестра 
Номер 2
Какая переменная в php.ini
содержит путь до библиотек расширений?
Ответ:
 (1) extension_dir
 
 (2) dir_extension
 
 (3) extensions
 
Номер 3
Какую функцию можно использовать для получения состояния установки PHP?
Ответ:
 (1) phpinfo()
 
 (2) php_info()
 
 (3) aboutphp()
 
Упражнение 3:
Номер 1
Функция domxml_open_mem
в качестве результата возвращает объект класса DOMDocument
. Что передается этой функции в качестве параметра?
Ответ:
 (1) в качестве параметра передается строка, содержащая XML- документ 
 (2) в качестве параметра передается строка, содержащая путь к XML-документу 
 (3) в качестве параметра передается объект класса DOMNode
 
Номер 2
Функция domxml_open_file
в качестве результата возвращает объект класса DOMDocument
. Что передается этой функции в качестве параметра?
Ответ:
 (1) в качестве параметра передается строка, содержащая путь к XML-документу 
 (2) в качестве параметра передается строка, содержащая XML-документ 
 (3) в качестве параметра передается объект класса DOMNode 
Номер 3
Функция domxml_new_doc
в качестве результата возвращает пустой XML-документ. Что передается этой функции в качестве параметра?
Ответ:
 (1) у этой функции параметров нет 
 (2) в качестве параметра передается строка, содержащая путь, где будет храниться XML-документ 
 (3) в качестве параметра передается строка, в которой содержатся первоначальные данные XML-документа 
 (4) в качестве параметра передается версия создаваемого XML-документа 
Упражнение 4:
Номер 1
Что возвращает метод document_element
класса DomDocument
?
Ответ:
 (1) корневой элемент 
 (2) содержимое элемента 
 (3) значение атрибута 
Номер 2
Что возвращает метод get_content
класса DomNode
?
Ответ:
 (1) корневой элемент 
 (2) содержимое элемента 
 (3) значение атрибута 
Номер 3
Что возвращает метод get_attribute
класса DomElement
?
Ответ:
 (1) корневой элемент 
 (2) содержимое элемента 
 (3) значение атрибута 
Упражнение 5:
Номер 1
С помощью какой функции можно преобразовать xml-файл в дерево PHP объектов?
Ответ:
 (1) domxml_new_doc
 
 (2) domxml_open_file
 
 (3) domxml_open_mem
 
Номер 2
С помощью какой функции можно преобразовать строку, содержащую xml-документ, в дерево PHP объектов?
Ответ:
 (1) domxml_new_doc
 
 (2) domxml_open_file
 
 (3) domxml_open_mem
 
Номер 3
С помощью какой функции в PHP можно создать xml-документ?
Ответ:
 (1) domxml_new_doc
 
 (2) domxml_open_file
 
 (3) domxml_open_mem
 
Упражнение 6:
Номер 1
Имеется следующий xml-документ (data.xml
):
<?xml version="1.0"?>
<root>
<person num="10">
<name>Nick Petrov</name>
</person>
<person num="20">
<name>Pit Ivanov</name>
</person>
</root>
Преобразовать данные этого файла в массивы, содержащие информацию о каждой персоне (Например, Array("num"=>"10", "name"=>"Nick Petrov")
)
Ответ:
 (1)
<?
$xmlstr = join('',file('data.xml'));
if(!$dom = domxml_open_mem($xmlstr)) {
echo "Ошибка \n";
exit;
}
$root = $dom->document_element();
$nodes = $root->child_nodes();
foreach($nodes as $node){
if ($node->tagname=='person'){
$currentPers = array();
$currentPers['num'] = $node->get_attribute('num');
$persons_info = $node->child_nodes();
foreach ($persons_info as $info){
if ($info->type==XML_ELEMENT_NODE) {
$currentPers[$info->tagname] = $info->get_content();
}
}
print_r ($currentPers);
echo "<br>";
}
}
?>
 
 (2)
<?
if(!$dom = domxml_open_file('data.xml')) {
echo "Ошибка \n";
exit;
}
$nodes = $dom ->child_nodes();
foreach($nodes as $node){
if ($node->tagname=='person'){
$currentPers = array();
$currentPers['num'] = $node->get_attribute('num');
$persons_info = $node->child_nodes();
foreach ($persons_info as $info){
if ($info->type==XML_ELEMENT_NODE) {
$currentPers[$info->tagname] = $info->get_content();
}
}
print_r ($currentPers);
echo "<br>";
}
}
?>
 
 (3)
<?
$xmlstr = join('',file('data.xml'));
if(!$dom = domxml_open_mem($xmlstr)) {
echo "Ошибка \n";
exit;
}
$root = $dom->document_element();
$nodes = $root->child_nodes();
foreach($nodes as $node){
if ($node->tagname=='person'){
$currentPers = array();
$currentPers['num'] = $node->get_attribute('num');
$persons_info = $node->child_nodes();
foreach ($persons_info as $info){
$currentPers[$info->tagname] = $info->get_content();
}
print_r ($currentPers);
echo "<br>";
}
}
?>
 
Номер 2
Имеется следующий xml-документ (data.xml
):
<?xml version="1.0"?>
<root>
<person num="10">
<name>Nick Petrov</name>
</person>
<person num="20">
<name>Pit Ivanov</name>
</person>
</root>
Дописать в него информацию еще об одной персоне (тег person
с атрибутом num="30"
и элементом name="Nina"
)
Ответ:
 (1)
<?
$xmlstr = join('',file('data.xml'));
if(!$dom = domxml_open_mem($xmlstr)) {
echo "Error \n";
exit;
}
$root = $dom->document_element();
$elements = $dom->get_elements_by_tagname("person");
$element = $elements[0];
$parent = $element->parent_node();
$children = $element->child_nodes();
$person = $dom->create_element("person");
$attr = $person->set_attribute("num","30");
foreach ($children as $child){
$node = $child->clone_node();
if ($child->tagname=="name") {
$cont = $node->set_content("Nina");
}
$person->append_child($node);
}
$parent->append_child($person);
echo "<PRE>", htmlentities($dom->dump_mem(true)),"</PRE>";
?>
 
 (2)
<?
$xmlstr = join('',file('data.xml'));
if(!$dom = domxml_open_mem($xmlstr)) {
echo "Ошибка \n";
exit;
}
$root = $dom->document_element();
$elements = $dom->get_elements_by_tagname("person");
$element = $elements[0];
$parent = $element->parent_node();
$children = $element->child_nodes();
$person = $element->clone_node();
$attr = $person->set_attribute("num","30");
foreach ($children as $child){
$node = $child->clone_node();
if ($child->tagname=="name") {
$cont = $node->set_content("Nina");
}
$person->append_child($node);
}
$parent->append_child($person);
echo "<PRE>", htmlentities($dom->dump_mem(true)),"</PRE>";
?>
 
 (3)
<?
$xmlstr = join('',file('data.xml'));
if(!$dom = domxml_open_mem($xmlstr)) {
echo "Ошибка \n";
exit;
}
$root = $dom->document_element();
$children = $root->child_nodes();
$person = $dom->create_element("person");
$attr = $person->set_attribute("num","30");
foreach ($children as $child){
$node = $child->clone_node();
if ($child->tagname=="name") {
$node->set_content("Nina");
}
$person->append_child($node);
}
$root->append_child($person);
echo "<PRE>", htmlentities($dom->dump_mem(true)),"</PRE>";
?>
 
Номер 3
Создать с помощью PHP xml-документ следующего вида:
<?xml version="1.0"?>
<root>
<person num="10">
<name>Nick Petrov</name>
</person>
<person num="20">
<name>Pit Ivanov</name>
</person>
</root>
Ответ:
 (1)
<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("root");
$pers = $doc->create_element("person");
$pers->set_attribute("num", "10");
$txt = $doc->create_text_node("Nick Petrov");
$pers->append_child($txt);
$root->append_child($pers);
$pers1 = $doc->create_element("person");
$pers1->set_attribute("num", "20");
$txt1 = $doc->create_text_node("Pit Ivanov");
$pers1->append_child($txt1);
$root->append_child($pers1);
echo "<PRE>", htmlentities($doc->dump_mem(true)),"</PRE>";
?>
 
 (2)
<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("root");
$pers = $doc->create_element("person");
$pers->set_attribute("num", "10");
$txt = $doc->create_text_node("Nick Petrov");
$root->append_child($pers);
$pers1 = $doc->create_element("person");
$pers1->set_attribute("num", "20");
$txt1 = $doc->create_text_node("Pit Ivanov");
$root->append_child($pers1);
$doc->append_child($root);
echo "<PRE>", htmlentities($doc->dump_mem(true)),"</PRE>";
?>
 
 (3)
<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("root");
$pers = $doc->create_element("person");
$pers->set_attribute("num", "10");
$txt = $doc->create_text_node("Nick Petrov");
$pers->append_child($txt);
$root->append_child($pers);
$pers1 = $doc->create_element("person");
$pers1->set_attribute("num", "20");
$txt1 = $doc->create_text_node("Pit Ivanov");
$pers1->append_child($txt1);
$root->append_child($pers1);
$doc->append_child($root);
echo "<PRE>", htmlentities($doc->dump_mem(true)),"</PRE>";
?>