public virtual String ApplyTemplates(DvslNode node) { StringWriter sw = new StringWriter(); Invoke(node, sw); return(sw.ToString()); }
/// <summary> /// retrieves value for key from internal storage /// </summary> /// <param name="key">name of value to get</param> /// <returns>value as object</returns> public override Object InternalGet(String key) { Object o = null; /* * special token : NODE * * returns current node */ if (key.Equals(NODE)) { return(PeekNode()); } /* * ATTRIB - returns attribute map */ if (key.Equals(ATTRIB)) { DvslNode n = PeekNode(); return(n.AttribMap); } /* * start with local storage */ return(ctx[key]); }
private void Invoke(DvslNode element, TextWriter writer) { String[] arr = new String[] {}; currentContext.PushNode(element); templateHandler.Render(element, currentContext, writer); currentContext.PopNode(); }
public virtual String Copy() { /* * fakie, for now */ DvslNode node = currentContext.PeekNode(); return(node.Copy()); }
public virtual String ApplyTemplates(DvslNode node, String xpath) { /* * get the nodes that was asked for */ IList nodeset = node.SelectNodes(xpath); StringWriter sw = new StringWriter(); for (int i = 0; i < nodeset.Count; i++) { DvslNode n = (DvslNode)nodeset[i]; Invoke(n, sw); } return(sw.ToString()); }
/// <summary> /// assumes a list of DVSLNodes /// </summary> public virtual String Copy(IList nodes) { if (nodes == null) { return(""); } StringWriter sw = new StringWriter(); for (int i = 0; i < nodes.Count; i++) { DvslNode dn = (DvslNode)nodes[i]; sw.Write(((XmlNode)dn.NodeImpl).OuterXml); } return(sw.ToString()); }
internal bool Render(DvslNode node, IContext context, TextWriter writer) { /* * find if we have an AST where the xpath expression mathes * for this node */ XmlNode dom4jnode = (XmlNode)node.NodeImpl; XPathNavigator nav = dom4jnode.CreateNavigator(); SimpleNode sn = null; for (int i = 0; i < xpathList.Count; i++) { Hashtable m = (Hashtable)xpathList[i]; XPathExpression expr = nav.Compile((String)m["xpath"]); if (nav.Matches((String)m["xpath"])) { sn = (SimpleNode)m["ast"]; break; } } // if we found something, render if (sn != null) { InternalContextAdapterImpl ica = new InternalContextAdapterImpl(context); ica.PushCurrentTemplateName(node.Name); try { sn.render(ica, writer); } finally { ica.PopCurrentTemplateName(); } return(true); } return(false); }
protected internal virtual long Transform(DvslNode root, TextWriter writer) { /* * wrap in a context to keep subsequent documents from * interacting with each other */ currentContext = new DVSLNodeContext(baseContext); long start = (DateTime.Now.Ticks - 621355968000000000) / 10000; /* * push 'this' into the context as our TransformTool * and invoke the transformation */ currentContext.Put("context", this); Invoke(root, writer); long end = (DateTime.Now.Ticks - 621355968000000000) / 10000; return(end - start); }
/// <summary> /// returns a list of nodes that satisfy the xpath /// </summary> public virtual IList SelectNodes(String xpath) { XmlNodeList l = element.SelectNodes(xpath); IList list = new ArrayList(); for (int i = 0; i < l.Count; i++) { XmlNode n = l[i]; if (n != null) { DvslNode dn = MakeDvslNode(n); if (dn != null) { list.Add(dn); } } } return(list); }
internal virtual bool Render(DvslNode node, IContext context, TextWriter writer) { /* * find if we have an AST where the xpath expression mathes * for this node */ XmlNode dom4jnode = (XmlNode) node.NodeImpl; XPathNavigator nav = dom4jnode.CreateNavigator(); SimpleNode sn = null; for (int i = 0; i < xpathList.Count; i++) { Hashtable m = (Hashtable) xpathList[i]; XPathExpression expr = nav.Compile((String)m["xpath"]); if (nav.Matches((String)m["xpath"])) { sn = (SimpleNode) m["ast"]; break; } } // if we found something, render if (sn != null) { InternalContextAdapterImpl ica = new InternalContextAdapterImpl(context); ica.PushCurrentTemplateName(node.Name); try { sn.render(ica, writer); } finally { ica.PopCurrentTemplateName(); } return true; } return false; }
public virtual DvslNode PushNode(DvslNode n) { nodeStack.Push(n); return n; }
protected internal virtual long Transform(DvslNode root, TextWriter writer) { /* * wrap in a context to keep subsequent documents from * interacting with each other */ currentContext = new DVSLNodeContext(baseContext); long start = (DateTime.Now.Ticks - 621355968000000000) / 10000; /* * push 'this' into the context as our TransformTool * and invoke the transformation */ currentContext.Put("context", this); Invoke(root, writer); long end = (DateTime.Now.Ticks - 621355968000000000) / 10000; return end - start; }
private void Invoke(DvslNode element, TextWriter writer) { String[] arr = new String[]{}; currentContext.PushNode(element); templateHandler.Render(element, currentContext, writer); currentContext.PopNode(); }
public virtual String ApplyTemplates(String path) { DvslNode node = currentContext.PeekNode(); return(ApplyTemplates(node, path)); }
/* === routines to manage current node stack === */ internal virtual DvslNode PushNode(DvslNode n) { nodeStack.Push(n); return n; }
/* === routines to manage current node stack === */ internal DvslNode PushNode(DvslNode n) { nodeStack.Push(n); return(n); }
public virtual String ApplyTemplates(DvslNode node, String xpath) { /* * get the nodes that was asked for */ IList nodeset = node.SelectNodes(xpath); StringWriter sw = new StringWriter(); for (int i = 0; i < nodeset.Count; i++) { DvslNode n = (DvslNode) nodeset[i]; Invoke(n, sw); } return sw.ToString(); }
public DvslNode PushNode(DvslNode n) { nodeStack.Push(n); return(n); }
public virtual String ApplyTemplates(DvslNode node) { StringWriter sw = new StringWriter(); Invoke(node, sw); return sw.ToString(); }