Jak wstawić w XSLT
Jak mogę wstawić
W arkuszu stylów XSLT, ciągle dostaję ten błąd:
XML Parsing Error: undefined entity
Zasadniczo chcę mieć niełamliwy znak spacji w szablonie XSLT.
12 answers
Użyj zamiast tego kodu encji  
.
jest HTML "znak encji odniesienia". W XML nie ma nazwanego encji dla niełamliwych spacji, więc używasz kodu  
.
Wikipedia zawiera listę encji XML i HTML i widać, że w XML jest tylko 5 "predefiniowanych encji", ale HTML ma ponad 200. Zwrócę również uwagę na Tworzenie spacji ( ) w XSL , która ma doskonałe odpowiedzi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-09 11:57:45
 
działa naprawdę dobrze. Jednak wyświetli jeden z tych dziwnych znaków w kodowaniu ANSI. Dla mnie zadziałało najlepiej.
<xsl:text> </xsl:text>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-04 00:31:14
Można też to zrobić:
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-23 14:48:53
Użyj tego
<xsl:text disable-output-escaping="yes">&</xsl:text>nbsp;
Edit: Downvotery powinny prawdopodobnie potwierdzić, że to działa jako pierwsze (tak jest i jest najbardziej ogólnym rozwiązaniem problemu.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-14 15:38:35
Możesz dodać definicję tego encji na początku pliku (poniżej deklaracji xml):
<!DOCTYPE stylesheet [
<!ENTITY nbsp " " >
]>
Możesz również dodać więcej encji, takich jak Ntilde, Aacute, itp.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-22 18:21:39
Oprócz odpowiedzi Victora hugo możliwe jest uzyskanie legalnych odniesień do wszystkich znanych znaków w pliku XSLT, takich jak:
<!DOCTYPE stylesheet [
<!ENTITY % w3centities-f PUBLIC "-//W3C//ENTITIES Combined Set//EN//XML"
"http://www.w3.org/2003/entities/2007/w3centities-f.ent">
%w3centities-f;
]>
...
<xsl:text>& –</xsl:text>
Istnieje również pewna różnica w wyniku tego podejścia w porównaniu do <xsl:text disable-output-escaping="yes">
one. Ta ostatnia będzie wytwarzać literały łańcuchowe, takie jak
dla wszystkich rodzajów danych wyjściowych, nawet dla <xsl:output method="text">
, a to może się różnić od tego, czego byś sobie życzył... Wręcz przeciwnie, uzyskanie encji zdefiniowanych dla szablonu XSLT za pomocą <!DOCTYPE ... <!ENTITY ...
będzie zawsze twórz dane wyjściowe zgodne z ustawieniami xsl:output
.
I kiedy włączamy wszystkie odwołania do znaków, rozsądne może być użycie lokalnego mechanizmu rozpoznawania encji, aby silnik XSLT nie pobierał definicji encji znaków z Internetu. Użytkownicy JAXP lub jawni Xalan-J mogą potrzebować łatki dla Xalan-J, aby poprawnie używać resolvera. Zobacz mój blog XSLT, entities, Java, Xalan... do pobierania patcha i komentarzy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:09
Gdy używasz następujących (Bez disable-output-escaping
!) dostaniesz jedną niełamliwą spację:
<xsl:text> </xsl:text>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-06 11:26:36
Arkusze stylów XSLT muszą być dobrze uformowane XML. Ponieważ " "
nie jest jednym z pięciu predefiniowanych encji XML , nie można go bezpośrednio włączyć do arkusza stylów.
Więc powrót do rozwiązania {[2] } jest idealnym zamiennikiem " "
, którego powinieneś użyć.
Przykład:
<xsl:value-of select="$txtFName"/> <xsl:value-of select="$txtLName"/>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-01 20:53:03
Możesz również użyć:
<xsl:value-of select="'&nbsp'"/>
Pamiętaj o amp po & lub otrzymasz komunikat o błędzie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-01 15:36:03
Próbowałem wyświetlić obramowania na pustej komórce w tabeli HTML. Mój stary trik używania non-breaking space w pustych komórkach nie działał z xslt. Użyłem line break z takim samym efektem. Wspominam o tym na wypadek, gdyby powodem, dla którego próbowałeś użyć nietłukącej spacji, było przekazanie zawartości do "pustej" komórki tabeli w celu włączenia granic komórek.
<br/>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-22 12:34:25
Spróbuj użyć
<xsl:text> </xsl:text>
Ale to zależy od procesora XSLT, którego używasz: Specyfikacja XSLT nie wymaga procesorów XSLT do konwersji go na "
".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-26 18:03:27
Chociaż odpowiedź została już udzielona przez @brabster i innych.
Myślę, że rozwiązaniem bardziej wielokrotnego użytku byłoby:
<xsl:variable name="space"> </xsl:variable>
...
<xsl:value-of select="$space"/>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-25 07:14:54