Ошибка при обработке XML

SnowB

Guest
Ошибка при обработке XML

Пытаюсь обработать и выдать xml файл.
Итак сам xml:
PHP:
<?xml version="1.0" encoding="windows-1251"?>
<root><dbo.vArhiv1><date>2003-05-29</date></dbo.vArhiv1></root>
xsl:
PHP:
<?xml version="1.0" encoding="windows-1251" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- Формат вывода — html -->
  <xsl:output method="html"/>

<table width="100%" border="0" cellpadding="0" cellspasing="0">
<tr>
	<td bgcolor="black">
		<table width="100%" cellspacing="1" cellpadding="3">
		
  <!-- Шаблон обработки корневого узла -->
<xsl:template match="//dbo.vArhiv1">
		
<tr class="BTR"><td width="75"><xsl:for-each select="./data" /></td></tr>
</xsl:template>
		
		</table>
</td></tr>
</table> 
</xsl:stylesheet>
Ну и взятый отсюда обработчик
PHP:
	/* load the xml file and stylesheet as domdocuments */ 
	$xsl = new DomDocument(); 
	$xsl->load("xml\\table.xsl"); 
	$inputdom = new DomDocument(); 
	$inputdom->load("xml\\test.xml"); 

	/* create the processor and import the stylesheet */ 
	$proc = new XsltProcessor(); 
	$xsl = $proc->importStylesheet($xsl); 
	$proc->setParameter(null, "titles", "Titles"); 

	/* transform and output the xml document */ 
	$newdom = $proc->transformToDoc($inputdom); 
	print $newdom->saveXML();

Так всё это выдало целый букет Warning и под конец Fatal error: Call to a member function saveXML() on a non-object


Итак первый Warning:
AttValue: " or ' expected - ругает строку <TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0>

Разве в xsl нельзя просто html тэги лепить?


Все другие Предупреждения на эту же строку:
- attributes construct error
- error parsing attribute name
- internal errorCouldn't find end of Start Tag TABLE


Явно я неправильно написал xsl, но как туда правильно добавить html теги я так и не понял. Подскажите плиз...
 

inTox

вёбных дел мастер
можно из пластилина, а значения аттрибутов нужно заключать в двойные кавычки. теги закрывать и писать их в одном регистре. по стандарту.
 

SnowB

Guest
inTox, спасибо! Как оперативно то...
Итак из всего многообразие Warning`ov не удалось решить это
Found a top-level element table with null namespace URI
ругает эту строку $xsl = $proc->importStylesheet($xsl);
 

inTox

вёбных дел мастер
SnowB, сходи на W3C и прочти спеку по xml и xslt.
короче в ман.
 

SnowB

Guest
inTox
в данном случае скрипт ругается на тэг <table> что он без namespace ?
Или я что-то не до понял...
 

inTox

вёбных дел мастер
ты не понял как должен выглядеть XSL-документ. А конкретно ты не сходил куда послали и не прочел какие элементы может включать xsl:stylesheet. Ты не посмотрел примеры преобразований, изложенные в спецификации.
 

SnowB

Guest
inTox
ну почему же... посмотрел.
The xsl:stylesheet element may contain the following types of elements:
xsl:eek:utput
xsl:template
Других я как бы и не использую..

Ну и вот один из xsl которые есть мане..
<xsl:template match="/">
<html>
<head>
<title>Customers</title>
</head>
<body>
<table>
<tbody>
<xsl:for-each select="customers/customer">
<tr>
<th>
<xsl:apply-templates select="name"/>
</th>
<xsl:for-each select="order">
<td>
<xsl:apply-templates/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</tbody>
</table>
</body>
</html>
</xsl:template>



принципиальных отличий я не вижу..

-~{}~ 23.03.05 15:56:

Ну вообще не разобрался, но сделал по другому и заработало...

xsl теперь у меня такой

<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" lang="en">
<head>
<title>Sales Results By Division</title>
</head>
<body>
<table border="1">
<tr>
<th>Date</th>
</tr>
<xsl:for-each select="root/dbo.vArhiv1">
<!-- order the result by revenue -->
<xsl:sort select="date"
data-type="number"
order="descending"/>
<tr>
<td>
<xsl:value-of select="date"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>

-~{}~ 23.03.05 16:23:

Может кто поможет... в ман не отсылать (не нашёл ничего подходящего)

Пытаюсь подвесить id-шник в ссылку...
<a href="del.php?id=<xsl:value-of select="id" /> ">Удалить</a>

Ну и разумеется скрипт на это дело ругает меня:
Unescaped '<' not allowed in attributes values

Как по другому данный момент реализовать?

P.S. Тому кто поможет покажу Ленина в ссылке =)

-~{}~ 23.03.05 16:37:

Всё... почти понял...

А вот и Ленин:

<a href=#> Ленин </a>

;)
 
Сверху