Re: Обработка XML - игнорирование комментариев
От: pt4h Беларусь http://dzmitryhuba.blogspot.com/
Дата: 21.02.07 08:42
Оценка:
Здравствуйте, _YETI_, Вы писали:

_YE>Вот пример кода... — добавление нода в treeView в соответствии с файлом xml, но без комментариев. Не получилось...

_YE>Укажите на трабл...


_YE>
_YE>private void addTreeNode(XmlNode xmlNode, TreeNode treeNode)
_YE>        {

_YE>            int x; 
_YE>            XmlNodeList xNodeList;
_YE>            if (xmlNode.HasChildNodes) //The current node has children
_YE>            {
_YE>                xNodeList = xmlNode.ChildNodes;
_YE>                for ( x = 0; x <= xNodeList.Count - 1; x++)
_YE>                //обход всех дочерних
_YE>                {
_YE>                    if (xmlNode.ChildNodes[x].NodeType != XmlNodeType.Comment)
_YE>                    {
_YE>                        xNode = xmlNode.ChildNodes[x];
_YE>                        TreeNode trNode = new TreeNode(xNode.Name);
_YE>                        // MessageBox.Show(xNode.Name);
_YE>                        treeNode.Nodes.Add(trNode);
_YE>                        if (xmlNode.ChildNodes[x].Attributes.Count > 0)
_YE>                        {
_YE>                            for (int y = 0; y <= xNode.Attributes.Count - 1; y++)
_YE>                            {
_YE>                                if (xNode.Attributes[y].NodeType != XmlNodeType.Comment)
_YE>                                {
_YE>                                    TreeNode hh = new TreeNode(xNode.Attributes[y].Value);
_YE>                                    //MessageBox.Show(hh.Text);
_YE>                                    trNode.Nodes.Add(hh);
_YE>                                }
_YE>                                else
_YE>                                    y++;
_YE>                            }

_YE>                        }
_YE>                        tNode = treeNode.Nodes[x];
_YE>                        addTreeNode(xNode, tNode);
_YE>                    }
_YE>                    else
_YE>                    {
                        
_YE>                        x++;
_YE>                        xNode = xmlNode.ChildNodes[x];
_YE>                        tNode = treeNode.Nodes[x];
_YE>                        addTreeNode(xNode, tNode);
_YE>                    }
_YE>                }
_YE>            }
_YE>           // else //No children, so add the outer xml (trimming off whitespace)
_YE>               // treeNode.Text = xmlNode.OuterXml.Trim();
_YE>        }
_YE>


Зачем вам выделенные конструкции? Первая насколько я понял в случае текущего элемента комментария пропустит следующий. Вторая пропустит следующий элемент и попытается добавить чайлды комментаря?!?!?! Мне кажется их стоит убрать...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.