iTextSharp.text.pdf.XfaForm.Xml2SomDatasets.InsertNode C# (CSharp) Метод

InsertNode() публичный Метод

public InsertNode ( XmlNode n, String shortName ) : XmlNode
n System.Xml.XmlNode
shortName String
Результат System.Xml.XmlNode
            public XmlNode InsertNode(XmlNode n, String shortName) {
                Stack2 stack = SplitParts(shortName);
                XmlDocument doc = n.OwnerDocument;
                XmlNode n2 = null;
                n = n.FirstChild;
                for (int k = 0; k < stack.Count; ++k) {
                    String part = (String)stack[k];
                    int idx = part.LastIndexOf('[');
                    String name = part.Substring(0, idx);
                    idx = int.Parse(part.Substring(idx + 1, part.Length - idx - 2));
                    int found = -1;
                    for (n2 = n.FirstChild; n2 != null; n2 = n2.NextSibling) {
                        if (n2.NodeType == XmlNodeType.Element) {
                            String s = EscapeSom(n2.LocalName);
                            if (s.Equals(name)) {
                                ++found;
                                if (found == idx)
                                    break;
                            }
                        }
                    }
                    for (; found < idx; ++found) {
                        n2 = doc.CreateElement(name);
                        n2 = n.AppendChild(n2);
                        XmlNode attr = doc.CreateNode(XmlNodeType.Attribute, "dataNode", XFA_DATA_SCHEMA);
                        attr.Value = "dataGroup";
                        n2.Attributes.SetNamedItem(attr);
                    }
                    n = n2;
                }
                InverseSearchAdd(inverseSearch, stack, shortName);
                name2Node[shortName] = n2;
                order.Add(shortName);
                return n2;
            }