XML无法正确解析属性

jth41

我正在编写一个简单的任务秒表应用程序,以在我们的EBS系统中使用。

我正在尝试将任务列表序列化为xml并以相同的方式加载它。这是导出的XML任务列表的示例:

<?xml version="1.0" encoding="utf-8"?>
<Task Task_Name="MainTask" Original_Estimated_Time="10:10:00" Current_Estimated_Time="10:10:00" Elapsed_Time="00:00:00">
    <Task Task_Name="Task 2" Original_Estimated_Time="05:00:00" Current_Estimated_Time="05:00:00" Elapsed_Time="00:00:00" />
    <Task Task_Name="Task 3" Original_Estimated_Time="15:00:00" Current_Estimated_Time="15:00:00" Elapsed_Time="00:00:00" />
</Task>

当我导入它时,我创建了一个称为TaskNodes的特殊TreeNode来将信息保存在内存中。但是,子节点未填充正确的标题字符串(如您从此屏幕快照中看到的那样):

这是用于所有XML加载的代码,我看不到根节点和子节点之间发生的区别:

    private void button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog dlg = new OpenFileDialog();
        dlg.Title = "Open XML Document";
        dlg.Filter = "XML Files (*.xml)|*.xml";
        dlg.FileName = Application.StartupPath + "\\..\\..\\example.xml";
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            try
            {
                //Just a good practice -- change the cursor to a 
                //wait cursor while the nodes populate
                this.Cursor = Cursors.WaitCursor;
                //First, we'll load the Xml document
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(dlg.FileName);
                //Now, clear out the treeview, 
                //and add the first (root) node
                treeView1.Nodes.Clear();
                treeView1.Nodes.Add(new TaskNode(xDoc.DocumentElement.Attributes[0].Value + "", TimeSpan.Parse(xDoc.DocumentElement.Attributes[1].Value + ""), TimeSpan.Parse(xDoc.DocumentElement.Attributes[2].Value + ""), TimeSpan.Parse(xDoc.DocumentElement.Attributes[3].Value + "")));
                TaskNode tNode = (TaskNode)treeView1.Nodes[0];
                //We make a call to addTreeNode, 
                //where we'll add all of our nodes
                addTaskNode(xDoc.DocumentElement, tNode);
                //Expand the treeview to show all nodes
                treeView1.ExpandAll();
            }
            catch (XmlException xExc)
            //Exception is thrown is there is an error in the Xml
            {
                MessageBox.Show(xExc.Message);
            }
            catch (Exception ex) //General exception
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                this.Cursor = Cursors.Default; //Change the cursor back
            }
        }
    }

    //This function is called recursively until all nodes are loaded
    private void addTaskNode(XmlNode xmlNode, TaskNode taskNode)
    {
        XmlNode xNode;
        TaskNode tNode;
        XmlNodeList xNodeList;
        if (xmlNode.HasChildNodes) //The current node has children
        {
            xNodeList = xmlNode.ChildNodes;
            for (int x = 0; x <= xNodeList.Count - 1; x++)
            //Loop through the child nodes
            {
                xNode = xmlNode.ChildNodes[x];
                taskNode.Nodes.Add(new TaskNode(xNode.Attributes[0].Value + "", TimeSpan.Parse(xNode.Attributes[1].Value + ""), TimeSpan.Parse(xNode.Attributes[2].Value + ""), TimeSpan.Parse(xNode.Attributes[3].Value + "")));

                tNode = (TaskNode)taskNode.Nodes[x];
                addTaskNode(xNode, tNode);
            }
        }
        else //No children, so add the outer xml (trimming off whitespace)
            taskNode.Text = xmlNode.OuterXml.Trim();
    }

在此处输入图片说明

亨克·霍尔特曼
   else //No children, so add the outer xml (trimming off whitespace)
        //taskNode.Text = xmlNode.OuterXml.Trim();
        taskNode.Text = xmlNode.InnerXml.Trim();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法正确解析响应xml

来自分类Dev

无法解析android中的xml属性

来自分类Dev

无法解析带有属性的空xml属性

来自分类Dev

无法解析带有属性的空xml属性

来自分类Dev

beautifulsoup无法正确解析xml标签,但是lxml是

来自分类Dev

无法正确解析从 SCOPUS API 检索到的 XML 文件

来自分类Dev

如何正确解析xml

来自分类Dev

无法正确解析时间

来自分类Dev

CsvHelper无法正确解析

来自分类Dev

无法正确解析YAML

来自分类Dev

无法解析正确的 URI

来自分类Dev

Android XML:RuntimeException:无法解析索引6的属性

来自分类Dev

XML反序列化无法解析属性类型

来自分类Dev

解析xml时无法获取属性的名称和值

来自分类Dev

休眠查询无法解析属性,即使该属性存在并且正确的大小写

来自分类Dev

xercesc无法正确解析汉字并创建没有正确结束标签的xml标签

来自分类Dev

错误:(41)解析XML时出错:格式不正确(无效的令牌)+无法解析符号R

来自分类Dev

Swift XML属性解析

来自分类Dev

解析XML属性PHP

来自分类Dev

XML属性解析

来自分类Dev

解析XML属性

来自分类Dev

Swift XML属性解析

来自分类Dev

Logstash - 解析 XML 属性

来自分类Dev

nHibernate:无法解析属性

来自分类Dev

休眠无法解析属性

来自分类Dev

Spring无法解析属性

来自分类Dev

无法解析Wierd XML

来自分类Dev

无法解析XAML / XML

来自分类Dev

无法解析xml条目