0
내 xsl에 인수를 보내려고하지만 성공할 수 없습니다 .. 이유를 모르겠다 ... this link을 살펴 보았습니다.PHP에서 XSLT로 매개 변수 보내기
PHP :
내 XSL 변수 (nameArtist가) 내 PHP 변수의 값을 가지고 있다고 생각하지 않습니다
내 파일은 ($ _GET [ '이름'], 예를 들어 브로 딘 스키에 동일) 파일 :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>Zozor - Carnets de voyage</title>
</head>
<body>
<?php
// Load XML file
$xml = new DOMDocument;
$xml->load('artists.xml');
// Load XSL file
$xsl = new DOMDocument;
$xsl->load('artist.xsl');
$process = new XSLTProcessor;
$process->importStyleSheet($xsl);
$process->setParameter('', 'nameArtist', $_GET['name'];);
echo $process->transformToXML($xml);
?>
</body>
XML 파일 :
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="artist.rnc" type="application/relax-ng-compact-syntax"?>
<?xml-stylesheet type="text/xsl" href="artist.xsl"?>
<ArtistCollection>
<artist>
<name>Brodinski</name>
<musicCategory>Electronic</musicCategory>
<originalCountry>Germany</originalCountry>
<photo>esfsdfsf</photo>
</artist>
<artist>
<name>Louis Armstrong</name>
<musicCategory>Jazz</musicCategory>
<originalCountry>United States</originalCountry>
</artist>
<artist>
<name>Miles Davis</name>
<musicCategory>Jazz</musicCategory>
<originalCountry>United States</originalCountry>
</artist>
</ArtistCollection>
XSLT 파일 :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:param name="nameArtist" />
<xsl:template match="/">
<html>
<body>
<h2>Artists</h2>
<p>salut <xsl:value-of select="$nameArtist" /></p>
<xsl:for-each select="ArtistCollection/artist">
<table border="1">
<tr bgcolor="#9acd32">
<th>name</th>
<th>category</th>
<th>country</th>
</tr>
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="musicCategory"/> </td>
<td><xsl:value-of select="originalCountry"/></td>
</tr>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
당신의 도움 :) 더 허용 대답에
저는 PHP 개발자가 아니지만'$ process-> setParameter (','nameArtist ', $ _GET ['name '];);'행의 끝에있는';;;' 올바른 것으로 보입니다. –
Simon에게 감사합니다. 그것은 복사/붙여 넣기의 오류입니다. 그러나 문제는 아닙니다. :) 그것은 XSL 파일의 " "라는 ligne이 문제없이, 완벽하게 작동하는 것처럼 보입니다 ... 그러나 나는 정말로 이해하지 못합니다. –
Tanguinoche
[msdn]에 따르면 (https://msdn.microsoft.com/en-us/library/ms256096%28v=vs.110%29.aspx), _ " ''요소는'의 직접적인 자식으로 선언되어야합니다 >'요소 "_. 템플릿으로 옮기면 도움이됩니까? –