Често задавани въпроси за XML форум
Съдържание
XML - общи въпроси.
Как да накарате XML да разбира руски?
- Конфигурирайте сървъра да показва правилното кодиране в заглавките на отговорите, например:
- Ако XML се генерира динамично, добавете подобна заглавка в скрипта, например:
- Посочете кодиране на документ, например:
XML програми
Как да използвам XSLT за копиране на всички изходни XML, с изключение на някои възли?
За целта използвайте "трансформацията на идентичността"
към които се добавя правило за възлите, които трябва да бъдат изключени:
Защо моите XSLT шаблони не работят в браузъра (функции в шаблони)?
16.2 Метод за извеждане на HTML
.
В стойността на атрибутите на URI, изходният метод html трябва да маскира не-ASCII символи, използвайки метода, препоръчан в глава Б.2.1 на препоръката HTML 4.0.
В случай, че подобно избягване е нежелателно, трябва независимо да обработите съответните данни преди (или след) трансформацията.
Пространство от имена по подразбиране
Когато генерирате XSLT (или когато избирате възли, използващи XPath от XML документ), трябва да въведете фиктивна префикс за пространството от имена по подразбиране в изходния XML файл, или изразите XPath няма да работят както се очаква. Пример:
sample.xml:
sample.xsl:
ще работи правилно, докато:
sample.xsl:
няма да работи. Декларацията на XSLT по подразбиране на пространството от имена (xmlns = "urn: my.namespace") засяга само последващи литерални елементи в самия XSLT и няма ефект върху оригиналния XML документ.
XSLT 2.0 има специален атрибут xsl за решаване на този проблем: xpath-default-namespace.
Как да създадем временни дървета?
XSLT 1.0 няма стандартен начин за създаване на временни дървета. Ако напишем нещо като:
Единственото нещо, което можем да направим с това, е да го копираме в получения документ. Изразът XPath $ nodes/foo/@ name ще изведе грешка.