[Mono-bugs] [Bug 499970] Xmlnode attribute and inertext seem broken
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Tue Sep 15 08:53:45 EDT 2009
http://bugzilla.novell.com/show_bug.cgi?id=499970
User aenomoto at novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=499970#c2
Atsushi Enomoto <aenomoto at novell.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |aenomoto at novell.com
Resolution| |WORKSFORME
--- Comment #2 from Atsushi Enomoto <aenomoto at novell.com> 2009-09-15 06:53:43 MDT ---
Instead of not-runnable incomplete code fragment, I have created a completely
runnable test case which is based on this report. However it does *not* show
any difference between mono and .NET.
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Windows.Forms;
public class Test : Form
{
public static void Main (string [] args)
{
Application.Run (new Test (args));
}
public Test (string [] args)
{
var t = XmlToTreeNode (new StreamReader (args [0]).ReadToEnd ());
TreeView tv = new TreeView ();
tv.Dock = DockStyle.Fill;
tv.Nodes.Add (t);
Controls.Add (tv);
}
public static TreeNode XmlToTreeNode(string leXml)
{
TreeNode Result = null;
try {
XmlDocument doc = new XmlDocument();
doc.LoadXml(leXml);
XmlNode RootNde = doc.ChildNodes.Item(0);
if (string.IsNullOrEmpty(RootNde.Name) == false) Result = new
TreeNode(RootNde.Name);
foreach (XmlNode CurNode in RootNde.ChildNodes) {
if (string.IsNullOrEmpty(CurNode.Name) == false) {
TreeNode Nde = new TreeNode(CurNode.Name);
Nde.Tag = CurNode.InnerText;
if (CurNode.Attributes.Count > 0) {
string AttrName = CurNode.Attributes[0].Name;
string AttrVal = CurNode.Attributes[0].InnerText;
TreeNode ChildNde = null;
for (int i = 0; i < CurNode.Attributes.Count; i++)
{
ChildNde = new
TreeNode(CurNode.Attributes[i].Name);
ChildNde.Tag = CurNode.Attributes[i].InnerText;
Nde.Nodes.Add(ChildNde);
}
}
foreach (XmlNode item in CurNode.ChildNodes) {
TreeNode Nde2 = new TreeNode(item.Name);
Nde2.Tag = item.InnerText;
if (item.Attributes != null &&
item.Attributes.Count > 0) {
string AttrName2 = item.Attributes[0].Name;
string AttrVal2 = item.Attributes[0].InnerText;
TreeNode ChildNde2 = null;
for (int i = 0; i < item.Attributes.Count; i++)
{
ChildNde2 = new
TreeNode(item.Attributes[i].Name);
ChildNde2.Tag =
item.Attributes[i].InnerText;
Nde2.Nodes.Add(ChildNde2);
}
}
Nde.Nodes.Add(Nde2);
}
Result.Nodes.Add(Nde);
}
}
} catch (Exception Ex) {
Console.WriteLine("{0} {1} {2}",
Ex.Message,Environment.NewLine, Ex.StackTrace);
TreeNode Err = new TreeNode("Error");
return Err;
}
return Result;
}
}
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list