J'écris une application cliente basée sur des documents et j'ai besoin d'un dom em> ou wpf em> -itant, mais modèle non visuel fort> : p>
Je me rends compte que c'est un bon ordre, mais j'espérais vraiment qu'il y aurait autre chose pour m'aider à commencer à commencer. Malheureusement, la dépendance du WPF est trop fermée, dépréciée et couplée au WPF de n'importe quelle utilisation en tant que modèle de document. Mes besoins ont également une plus grande ressemblance avec le HTML DOM, mais je n'ai pas été en mesure de trouver des implémentations de Dom propres pouvant être découplées de HTML ou portées à .NET. p>
Ma plate-forme actuelle est .NET / C # mais si quelqu'un sait de tout ce qui pourrait être utile pour inspiration ou incorporer, quelle que soit la plate-forme em>, j'aimerais savoir. p>
5 Réponses :
Je ne pense pas que cela réponde à toutes les exigences que vous avez spécifiées, mais avez-vous envisagé de travailler avec un DOM XML (par opposition à un DOM HTML)? Vous pouvez créer un document XML programmatiquement dans .NET et le manipuler à l'aide de méthodes et de propriétés DOM, ainsi que des choses comme des requêtes XPath. Découvrez .net's xmldocument objet. Cela pourrait être un point de départ raisonnable. P>
Eclipse EMF pourrait aider, mais cela pourrait aussi être trop excitée pour vous. IMHO Bon langage conçu devrait faire une telle tâche extrêmement facile ... p>
La plate-forme NetBeans fait à peu près exactement ce que vous voulez. p>
Cela aurait été un commentaire - bien que nous comprenions, vous avez besoin de 50 représentants pour publier des commentaires. Par conséquent, ajoutez des informations plus pertinentes pour appuyer votre réponse.
Recherchez-vous des conseils pour un modèle d'objet? Que diriez-vous:
// C#-ish code that probably doesn't compile class Element { public object GetAttribute(string attribute) { if (this.Attributes.HasKey(attribute)) return this.Attributes[attribute]; else return this.Parent.GetAttribute(attribute); } private IDictionary<string,object> Attributes; private Element Parent; private IList<Element> Children; // maybe not needed // etc. }