Coutty
16-12-2008, 17:23
Скрипт генерирует XML-документ, после чего тот скармливается XSLT-процессору.
Скрипт:
<?php
// содержимое
$title = "& # 1 7 1 ; Супер заголовок & # 1 8 7 ; ";
$content = "<h2>Доставка</h2>";
// создаём XML
$xml = new DOMDocument('1.0','UTF-8');
$xml->formatOutput = 1;
// корневой элемент
$nodeRoot = $xml->createElement("content");
$xml->appendChild($nodeRoot);
// тэг title
$nodeTitle = $xml->createElement("title", $title);
$nodeRoot->appendChild($nodeTitle);
// тэг page
$nodePage = $xml->createElement("page", $content);
$nodeRoot->appendChild($nodePage);
...
?>
В общем, получается такой XML:
<?xml version="1.0" encoding="UTF-8"?>
<content page="delivery">
<title>«Супер заголовок»</title>
<page>& l t ; h2 & g t ; Доставка & l t ; /h2 & g t ; </page>
</content>
Пробелов это я понаставил.
И после обработки XSLT-процессором, разумеется, ни одного тэга из page на странице не получается. Все вот так с амперсандами на странице и выводятся.
Если в CDATA вставлять данные, то всё равно с амперсандами выходит, но уже после XSL-обработки (XML нормальный получается)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
encoding="UTF-8"
indent="yes"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
<xsl:template match="content">
<html>
<head>
<title><xsl:value-of select="title"/></title>
</head>
<body>
<xsl:value-of select="page" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Непонятно... Что с ним делать?
Скрипт:
<?php
// содержимое
$title = "& # 1 7 1 ; Супер заголовок & # 1 8 7 ; ";
$content = "<h2>Доставка</h2>";
// создаём XML
$xml = new DOMDocument('1.0','UTF-8');
$xml->formatOutput = 1;
// корневой элемент
$nodeRoot = $xml->createElement("content");
$xml->appendChild($nodeRoot);
// тэг title
$nodeTitle = $xml->createElement("title", $title);
$nodeRoot->appendChild($nodeTitle);
// тэг page
$nodePage = $xml->createElement("page", $content);
$nodeRoot->appendChild($nodePage);
...
?>
В общем, получается такой XML:
<?xml version="1.0" encoding="UTF-8"?>
<content page="delivery">
<title>«Супер заголовок»</title>
<page>& l t ; h2 & g t ; Доставка & l t ; /h2 & g t ; </page>
</content>
Пробелов это я понаставил.
И после обработки XSLT-процессором, разумеется, ни одного тэга из page на странице не получается. Все вот так с амперсандами на странице и выводятся.
Если в CDATA вставлять данные, то всё равно с амперсандами выходит, но уже после XSL-обработки (XML нормальный получается)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
encoding="UTF-8"
indent="yes"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
<xsl:template match="content">
<html>
<head>
<title><xsl:value-of select="title"/></title>
</head>
<body>
<xsl:value-of select="page" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Непонятно... Что с ним делать?