System.Xml.XmlDataDocument.CloneNode C# (CSharp) Method

CloneNode() public method

public CloneNode ( bool deep ) : XmlNode
deep bool
return XmlNode
        public override XmlNode CloneNode(bool deep)
        {
            XmlDataDocument clone = (XmlDataDocument)(base.CloneNode(false));
            clone.Init(DataSet.Clone());

            clone._dataSet.EnforceConstraints = _dataSet.EnforceConstraints;
            Debug.Assert(clone.FirstChild == null);
            if (deep)
            {
                DataPointer dp = new DataPointer(this, this);
                try
                {
                    dp.AddPointer();
                    for (bool fMore = dp.MoveToFirstChild(); fMore; fMore = dp.MoveToNextSibling())
                    {
                        XmlNode cloneNode;
                        if (dp.NodeType == XmlNodeType.Element)
                            cloneNode = clone.CloneTree(dp);
                        else
                            cloneNode = clone.CloneNode(dp);
                        clone.AppendChild(cloneNode);
                    }
                }
                finally
                {
                    dp.SetNoLongerUse();
                }
            }

            return clone;
        }

Same methods

XmlDataDocument::CloneNode ( DataPointer dp ) : XmlNode

Usage Example

示例#1
0
        public void CloneNode()
        {
            XmlDataDocument doc = new XmlDataDocument();

            doc.DataSet.ReadXmlSchema(new StringReader(RegionXsd));
            doc.Load(new StringReader(RegionXml));

            XmlDataDocument doc2 = (XmlDataDocument)doc.CloneNode(false);

            Assert.Equal(0, doc2.ChildNodes.Count);
            Assert.Equal("<?xml version=\"1.0\" encoding=\"utf-16\"?>", doc2.DataSet.GetXmlSchema().Substring(0, 39));

            doc2 = (XmlDataDocument)doc.CloneNode(true);

            Assert.Equal(2, doc2.ChildNodes.Count);
            Assert.Equal("<?xml version=\"1.0\" encoding=\"utf-16\"?>", doc2.DataSet.GetXmlSchema().Substring(0, 39));

            doc.DataSet.Tables[0].Rows[0][0] = "64";

            Assert.Equal("1", doc2.DataSet.Tables[0].Rows[0][0].ToString());
        }
All Usage Examples Of System.Xml.XmlDataDocument::CloneNode
XmlDataDocument