4 байта Unicode-символы еще не широко используются, поэтому не все приложения там полностью поддерживают их. MySQL 5.5 отлично работает с 4 байтовыми символами при правильной настройке - проверьте, могут ли ваши другие компоненты работать с ними.
Вот еще несколько вещей, которые нужно проверить:
ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4;
и т. д. Если ваши данные уже находятся в наборе символов utf8, он должен без проблем быть преобразован в utf8mb4. Как всегда, сделайте резервную копию своих данных перед попыткой! SET NAMES utf8mb4
до запускать любые запросы. Как только каждый уровень вашего приложения сможет поддерживать новые символы, вы сможете использовать их без какого-либо повреждения.
Я не совсем уверен, какой вывод HTML вам нужен, но, надеюсь, это поможет вам начать.
<xsl:template match="category">
<xsl:if test="not(contains(link, 'msdn'))">
<a href="{link}">
<xsl:value-of select="blog" />
</a>
</xsl:if>
</xsl:template>
Вы также можете включить тест в предикат сопоставления с шаблоном (или выбора применить шаблоны) следующим образом:
<xsl:template match="category[not(contains(link, 'msdn'))]">
Xpath для xsl: apply-templates или xsl: value-of должен содержать следующее
/Categories/category/blog[not( contains(following-sibling::link/text(), 'msdn'))]
Используйте функцию "не" с функцией "содержит".
Пример: not(contains('XML', 'XM'))
Результат: false