Добрый вечер. Помогите пожалуйста разобраться? Есть xml документ, пишу php код, где извлекаю данные из xml. Проблема в том, что неправильно выводит содержимое.
Вот xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlnsШокирован="urn:schemas-microsoft-comШокированfficeШокированffice" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-comШокированffice:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml">
- <w:body>
- <w:p w:rsidR="00C20FFF" w:rsidRDefault="00151BEA" w:rsidP="00151BEA">
- <w:pPr>
<w:jc w:val="center" />
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
</w:pPr>
- <w:r>
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
<w:t>Институт Открытого Образования и Информационных Систем</w:t>
</w:r>
</w:p>
- <w:p w:rsidR="00151BEA" w:rsidRDefault="00151BEA" w:rsidP="00151BEA">
- <w:pPr>
<w:jc w:val="center" />
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
</w:pPr>
- <w:r>
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
<w:t>2015</w:t>
</w:r>
</w:p>
- <w:p w:rsidR="00151BEA" w:rsidRDefault="00151BEA" w:rsidP="00151BEA">
- <w:pPr>
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
<w:u w:val="single" />
</w:rPr>
</w:pPr>
- <w:r w:rsidRPr="00151BEA">
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:b />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
<w:t>Иванова Елена Анатольевна,</w:t>
</w:r>
- <w:r>
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:b />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
<w:t xml:space="preserve"></w:t>
</w:r>
- <w:r>
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:b />
<w:i />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
<w:t>студентка 3 курса</w:t>
</w:r>
- <w:r>
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
<w:u w:val="single" />
</w:rPr>
<w:t>. Прошу предоставить мне койко-место в общежитии №5.</w:t>
</w:r>
</w:p>
- <w:p w:rsidR="00151BEA" w:rsidRPr="00151BEA" w:rsidRDefault="00151BEA" w:rsidP="00151BEA">
- <w:pPr>
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
</w:pPr>
- <w:r w:rsidRPr="00151BEA">
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
<w:t>13.07.2012</w:t>
</w:r>
- <w:r>
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
<w:t xml:space="preserve"></w:t>
</w:r>
- <w:r w:rsidRPr="00151BEA">
- <w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:b />
<w:sz w:val="28" />
<w:szCs w:val="28" />
</w:rPr>
<w:t>Иванова</w:t>
</w:r>
</w:p>
- <w:sectPr w:rsidR="00151BEA" w:rsidRPr="00151BEA" w:rsidSect="00C20FFF">
<w:pgSz w:w="11906" w:h="16838" />
<w:pgMar w:top="1134" w:right="850" w:bottom="1134" w:left="1701" w:header="708" w:footer="708" w:gutter="0" />
<w:cols w:space="708" />
<w:docGrid w:linePitch="360" />
</w:sectPr>
</w:body>
Сам код:
</w:document> PHP:
скопировать код в буфер обмена
<? function getParams (&$params=array(), $node, $r=false) { foreach ($node->childNodes as $node1) { if($node1->hasChildNodes()){ if($node1->nodeName=='w:r') $r=true; getParams($params,$node1, $r); } else { if ($node1->nodeName=='w:b'&&$r) $params['b']=true; if ($node1->nodeName=='w:u'&&$r) $params['u']=true; if ($node1->nodeName=='w:i'&&$r) $params['i']=true; if ($node1->nodeName=='w:pStyle'&&$node1->attributes->getNamedItem('val')->nodeValue=='ListParagraph') $params['list']=true; } } return; } //получаем список файлов для папки-источника, //echo "$main_dir"; //Получем список файлов в текущем каталоге и //отбрасываем элементы с именами . и .. if ($handle = opendir($main_dir.'/files/primer')) { $reader = new XMLReader; //$list=false; //чтение элементов каталога while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { //echo $file.'</br>'; } } } echo $file.'</br>'; require_once('C:/WebServers/pclzip/pclzip.lib.php'); //Создаем объект $zip. В качестве параметра передаем имя архива $zip = new PclZip("primer.zip"); //$zip->opendir($main_dir.'/www/'.$file); //$zip->extractTo($main_dir.'/primer/'); //$zip->close(); $reader->open($main_dir.'/files/primer/word/document.xml'); $text = ''; while ($reader->read()){ $doc = $reader->expand(); if ($doc->childNodes === NULL) continue; foreach ($doc->childNodes as $node) { if ($node->childNodes === NULL) continue; foreach ($node->childNodes as $node2) { $params=array('b'=>false ,'i'=>false , 'u'=>false , 'list'=>false ); if($node2->tagName=='w:p') { $text.='<p>'; foreach($node2->childNodes as $node3) { if($node3->nodeName=='w:r') { $params=array('b'=>false ,'i'=>false , 'u'=>false , 'list'=>false ); getParams($params, $node3); $text.= ($params['b']?'<strong>':''). ($params['i']?'<em>':''). ($params['u']?'<u>':''). $node3->nodeValue. ($params['u']?'</u>':''). ($params['i']?'</em>':''). ($params['b']?'</strong>':''); } } $text.='</p>'; } } } } $reader->close(); echo $text; ?>
|