org.noear.sited.SdNodeSet.buildForNode C# (CSharp) Method

buildForNode() private method

private buildForNode ( System.Xml.Linq.XElement element ) : SdNodeSet
element System.Xml.Linq.XElement
return SdNodeSet
        internal SdNodeSet buildForNode(XElement element)
        {
            if (element == null)
                return this;

            name = element.Name.LocalName;

            _items.Clear();
            attrs.clear();

            {
                foreach (var p in element.Attributes()) {
                    attrs.set(p.Name.LocalName, p.Value);
                }

                foreach (var p in element.Elements()) {
                    if (p.HasAttributes == false) {
                        if (new List<XNode>(p.Nodes()).Count == 1) {
                            var p2 = p.FirstNode;
                            if (p2 != null && p2.NodeType == System.Xml.XmlNodeType.Text) {
                                attrs.set(p.Name.LocalName, p.Value);
                            }
                        }
                    }
                }
            }

            _dtype = attrs.getInt("dtype");

            foreach (XElement e1 in element.Elements()) {
                if (e1.HasAttributes) {
                    SdNode temp = Util.createNode(source).buildForNode(e1);
                    this.add(temp);
                }
                else if(e1.HasElements){
                    SdNodeSet temp = Util.createNodeSet(source).buildForNode(e1);
                    this.add(temp);
                }
            }

            OnDidInit();

            return this;
        }

Usage Example

Ejemplo n.º 1
0
        public void DoLoad()
        {
            xmlHeadName   = attrs.getString("head", xmlHeadName);
            xmlBodyName   = attrs.getString("body", xmlBodyName);
            xmlScriptName = attrs.getString("script", xmlScriptName);

            head = Util.createNodeSet(this);
            head.buildForNode(root.Element(xmlHeadName));

            body = Util.createNodeSet(this);
            body.buildForNode(root.Element(xmlBodyName));

            if (schema == 0)
            {
                head.attrs = this.attrs;
            }
            else
            {
                head.attrs.addAll(this.attrs);
            }

            title   = head.attrs.getString("title");
            expr    = head.attrs.getString("expr");
            url     = head.attrs.getString("url");
            url_md5 = Util.md5(url);

            _encode = head.attrs.getString("encode");
            _ua     = head.attrs.getString("ua");

            //----------
            //放后面
            //
            js      = new JsEngine(this);
            jscript = new SdJscript(this, root.Element(xmlScriptName));
            jscript.loadJs(js);

            root = null;
        }