하나의 XSLT 스타일 시트에서 하나 이상의 EXSLT 확장을 선언하는 적절한 방법은 무엇입니까?XSLT 스타일 시트에서 하나 이상의 EXSLT 확장을 선언하는 적절한 방법
더 중요한 것은 xmlns:*="http://exslt.org/*"
의 목적은 무엇입니까?
documentation는 말한다 : xmlns:date="http://exslt.org/dates-and-times
는 출력 문서의 루트 노드에 표시하지 그냥 않도록
You can use the extension-element-prefixes attribute to prevent the extension namespaces from being output in the result tree.
가 있습니까? 그렇다면 왜 그렇게 중요합니까? 나는 lxml 프로세서와 XSLT 1.0을 사용하고
lxml.etree.XMLSyntaxError: Attribute extension-element-prefixes redefined, line 7, column 40
: 다음 스타일 시트와
가 나는 오류가 발생합니다.
XML 입력
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl" version="1.0"?>
<item>test</item>
XSLT 1.0 스타일 시트
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://exslt.org/strings"
xmlns:date="http://exslt.org/dates-and-times"
extension-element-prefixes="str"
extension-element-prefixes="date">
<xsl:template match="/">
<html>
<body>
<xsl:value-of
select="str:padding(2 - string-length(date:month-in-year()), 0)"/>
<xsl:value-of select="date:month-in-year()"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
HTML 출력
<html xmlns:str="http://exslt.org/strings" xmlns:date="http://exslt.org/dates-and-times">
<body>05</body>
</html>