2010-08-10 6 views
1

J'utilise CKEditor dans mon application où les utilisateurs peuvent écrire des blogs, créer des pages, etc., Le mode source est désactivé pour l'éditeur. L'écriture de xml dans la zone de texte de l'éditeur n'est pas conservée après l'enregistrement du contenu. Je vois clairement que le contenu a été codé en HTML et la même chose est fournie en entrée dans la zone de texte de CKEditor.travailler avec des extraits xml dans CKEditor

Répondre

2

Fonctionne comme prévu. Tout ce que vous entrez dans la zone WYSIWYG, sera encodé en HTML. Comment voudriez-vous vous comporter différemment?

Si vous voulez un éditeur de texte pour XML écrit, peut-être les réponses à cette question sont utiles: Textarea that can do syntax highlighting on the fly?

+0

Mais la même chose devrait être montré comme extrait de xml à la vue du contenu n'est pas? – Amareswar

+0

@Ama Je ne comprends pas ce que vous voulez dire, pouvez-vous clarifier? –

+0

J'ai tapé xml dans l'éditeur comme et enregistré le contenu. J'ai fourni le même contenu à l'éditeur. Rien n'est affiché dans la zone de texte. – Amareswar

0

Je veux trop CKEditor pour soutenir les balises XML, mais je comprends que vous ne pouvez pas les taper juste dans la fenêtre principale - tout ce qui est tapé ici est supposé être du contenu réel, pas de marquage, et est donc codé. Ce que je voudrais comme de faire est de définir une liste de styles qui provoquent l'utilisation d'une étiquette de mon choix, par exemple 3. Si l'utilisateur choisit le style 'example', CKEDitor fait <x>content</x>. Malheureusement, je n'ai pas eu beaucoup de succès avec ceci, malgré le piratage du fichier dtd.js.

Ma solution actuelle consiste à définir une liste de styles, mais à les mapper en une balise HTML standard, puis à mettre le nom de balise XML souhaité en tant qu'attribut. Je devrai alors écrire du XSLT qui transformera les données plus tard.

CKEDITOR.stylesSet.add('myStyles', 
[{ 
    name: 'Example sentence', 
    element: 'span', 
    attributes: {'class': 'example', 'data-xmlTag': 'x'} 
}];   

config.stylesSet = 'myStyles'; 

element spécifie une balise HTML standard - J'utilise <span> si je veux que le XML soit en ligne et <div> si je veux que ce soit au niveau du bloc. L'attribut data-xmlTag indique quelle balise XML je voulais réellement utiliser (x dans ce cas). Le class me permet de définir certains styles en CSS et signifie que je peux regrouper plusieurs balises XML sous un nom de classe. Pour définir certains CSS:

config.contentsCss = CKEDITOR.basePath+'tagStyles.css';