|
private System.Windows.Forms.GroupBox grpbox;
XPathDocument dom;
XmlDocument doc;
XPathNavigator nav;
XPathExpression expr;
XPathNodeIterator iterator;
int cnt=0;
Label lbl;
TextBox txt;
OpenFileDialog dlg;
TreeNode newTreeNode;
//int cnt = e.Node.GetNodeCount(false);
//string filename;
private void Form1_Load(object sender, System.EventArgs e)
{
//label1.Text = "File Path";
//label1.SetBounds(8, 8, 50, 20);
//filename = Application.StartupPath + "\\Sample.xml";
//textBox1.Text= filename;
//textBox1.SetBounds(64, 8, 256, 20);
button1.Text = "Populate the TreeView with XML";
button1.SetBounds(8, 20, 200, 20);
treeXml.Height = 600;
treeXml.Width = 400;
grpbox = new GroupBox();
grpbox.Height = 600;
grpbox.Width = 400;
grpbox.SetBounds(500, 2, 700, 600);
grpbox.Visible = true;
grpbox.Dock.Equals(Right);
grpbox.Show();
this.Controls.Add(grpbox);
//dom = new XPathDocument(dlg.FileName);
}
private void ConvertXmlNodeToTreeNode(XmlNode xmlNode,
TreeNodeCollection treeNodes)
{
TreeNode newTreeNode = treeNodes.Add(xmlNode.Name);
switch (xmlNode.NodeType)
{
case XmlNodeType.ProcessingInstruction:
case XmlNodeType.XmlDeclaration:
newTreeNode.Text = "<?" + xmlNode.Name + " " +
xmlNode.Value + "?>";
break;
case XmlNodeType.Element:
if (xmlNode.Name.ToLower().Equals("node") == true)
{
newTreeNode.Text = "<" + xmlNode.Attributes["label"].Value.ToString() + ">";
}
else
newTreeNode.Text = "<" + xmlNode.Name + ">";
break;
case XmlNodeType.Attribute:
newTreeNode.Text = xmlNode.Name;
// newTreeNode.Text = "ATTRIBUTE: " + xmlNode.Name;
break;
case XmlNodeType.Text:
case XmlNodeType.CDATA:
newTreeNode.Text = xmlNode.Value;
break;
case XmlNodeType.Comment:
newTreeNode.Text = "<!--" + xmlNode.Value + "-->";
break;
}
if (xmlNode.Attributes != null)
{
foreach (XmlAttribute attribute in xmlNode.Attributes)
{
ConvertXmlNodeToTreeNode(attribute, newTreeNode.Nodes);
}
}
foreach (XmlNode childNode in xmlNode.ChildNodes)
{
ConvertXmlNodeToTreeNode(childNode, newTreeNode.Nodes);
}
}
private void treeXml_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
cnt = e.Node.GetNodeCount(false);
grpbox.Controls.Clear();
for (int i = 0; i < cnt; i++)
{
Label lbl = new Label();
TextBox txt = new TextBox();
lbl.Text = e.Node.Text;
lbl.Left = 200;
lbl.Top = 200 * i;
txt.Left = 250;
txt.Top = 200 * i;
lbl.Show();
txt.Show();
grpbox.Controls.Add(txt);
grpbox.Controls.Add(lbl);
}
}
private void button1_Click(object sender, System.EventArgs e)
{
XmlDocument doc = new XmlDocument();
OpenFileDialog dlg = new OpenFileDialog();
treeXml.Nodes.Clear();
dlg.Title = "Open XML File";
dlg.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*" ;
if (dlg.ShowDialog() == DialogResult.OK)
{
//imgPhoto.Image = new Bitmap(dlg.OpenFile());
doc.Load(dlg.OpenFile());
}
dlg.Dispose();
ConvertXmlNodeToTreeNode(doc, treeXml.Nodes);
treeXml.Nodes[0].ExpandAll();
}
// insert --- its not working
private void button2_Click(object sender, System.EventArgs e )
{
nav = doc.CreateNavigator();
expr = nav.Compile(dlg.FileName);
iterator = nav.Select(expr);
try
{
while (iterator.MoveNext())
{
XPathNavigator nav2 = iterator.Current.Clone();
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
//XPathDocument dom=new XPathDocument();
try
{
XmlTextReader reader = new XmlTextReader(dlg.FileName);
//XmlDocument dom = new XmlDocument();
doc.Load(reader);
reader.Close();
XmlNode currNode;
XmlDocumentFragment docFrag = doc.CreateDocumentFragment();
for(int i=0;i< cnt;i++)
{
docFrag.InnerXml="<" + lbl.Text + ">" +
"<" + txt.Text + ">" ;
}
// insert the availability node into the document
currNode = doc.DocumentElement;
currNode.InsertAfter(docFrag, currNode.LastChild);
//save the output to a file
doc.Save(dlg.FileName);
this.DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
Console.WriteLine ("Exception: {0}", ex.ToString());
this.DialogResult = DialogResult.Cancel;
}
}
private void button2_Click_1(object sender, System.EventArgs e)
{
}
private void button3_Click(object sender, System.EventArgs e)
{
}
}
}
|
|
|
|
|
What do you mean by "not working"?
What happens? (And "nothing" never happens...)
Do you get any error message?
Experience is the sum of all the mistakes you have done.
|
|
|
|
|
no i am not getting the logic how to do it? an confustion in a code....
|
|
|
|
|
Well, if you don't explain what it is that you are trying to do with the code, it's even more confusing for someone who hasn't written it...
Experience is the sum of all the mistakes you have done.
|
|
|
|
|
i just want to insert a new node in the treeview and xml file both , where i can insert name and values from textbox.... will u help in for code?
|
|
|
|
|
i have textbox in which i can fill the values which should be updated into the treenode...?
|
|
|
|
|
Simple example:
string someText = yourTextBox.Text;
TreeNode aNode = new TreeNode();
aNode.Name = "some name here";
aNode.Text = someText;
yourTreeCtrl.Nodes.Add(aNode);
You could get more browsing the MSDN articles[^], couldn't you?
SkyWalker
|
|
|
|
|
When Im trying to work with Webparts im receiving this error...help me friends.
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
Hi,Im Razana
|
|
|
|
|
Is that is exception from the code?
and have you tried to connect that server using sqlserver client/SQl Express? or during connection network may be disconnected.
Regards.
Tasleem Arif
|
|
|
|
|
I have a pc remote control and I want to capture his keycodes and to change their functions. how can I do this?
|
|
|
|
|
Hello Friends,
I am developing an C#.NET application and i am able to get data in DataGridView1 from SQL Server 2000 now i want that if someone wants to edit data in datagridview1 then it will save in the database.
So how can i achieve this....
|
|
|
|
|
|
I'm starting to pull my hair out and hope somebody can help stop me from becoming bald!
I have a Class - LookupItem that uses XmlRoot attribute so that when serialized individually outputs under element named Item.
Now if I have a List<lookupitem> when I serialize it the lookup item class always serializes as LookupItem and not Item.
What I'm wanting to see is:
<Clean>
<Item>
....
</Item>
</Clean>
but all I get is:
<Clean>
<LookupItem>
....
</LookupItem>
</Clean>
The code I'm currently using to do the serialization is below, but I have tried doing serialization with extra types, XmlAttributeOverrides and still cannot get the output correct.
<br />
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();<br />
ns.Add("", "");<br />
<br />
XmlAttributeOverrides xao = new XmlAttributeOverrides();<br />
<br />
XmlRootAttribute xr = new XmlRootAttribute("Clean");<br />
XmlSerializer s = new XmlSerializer(typeof(LookupItemList));<br />
<br />
XmlWriterSettings settings = new XmlWriterSettings();<br />
settings.OmitXmlDeclaration = true;<br />
<br />
StringWriter output = new StringWriter();<br />
XmlWriter writer = XmlWriter.Create(output, settings);<br />
<br />
s.Serialize(writer, Clean, ns);<br />
writer.Close();<br />
<br />
output.ToString();
Can anybody help me at all?
|
|
|
|
|
I think you need to apply the XmlRootAttribute to the LookupItemList class. So Something like:
[XmlRoot("Clean")]
public class LookupItemList ...
Then you would need to do the same thing with the LookupItem class, but use XmlElementAttribute to define the name as "Item".
FYI...In your code example above you don't use xr or xao anywhere, are you sure this is the code you are using?
Take care,
Tom
-----------------------------------------------
Check out my blog at http://tjoe.wordpress.com
|
|
|
|
|
Sorry Tom,
Just realised code posted not quite correct I'm using:
<br />
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();<br />
ns.Add("", "");<br />
<br />
XmlSerializer s = new XmlSerializer(typeof(LookupItem));<br />
<br />
XmlWriterSettings settings = new XmlWriterSettings();<br />
settings.OmitXmlDeclaration = true;<br />
<br />
StringWriter output = new StringWriter();<br />
XmlWriter writer = XmlWriter.Create(output, settings);<br />
<br />
s.Serialize(writer, toSerialize, ns);<br />
writer.Close();<br />
<br />
return output.ToString();<br />
The root element won't help unfortunately since I'm trying to serialise a List<t>, even if I did create a specialist list based on type T all I get output is the correct root element, the issue is the items in the list being output with the correct element name as specified by myself using XmlRoot("Item") on the class that is stored in the list.
|
|
|
|
|
For the LookupItem class you should use the XmlElementAttribute (I think). So something like this:
[XmlElement("Item")]
public class LookupItem ...
The XmlRootAttribute is only good for the root item in the XML doc (of which there is only one). Let me know if this doesn't work, though.
Take care,
Tom
-----------------------------------------------
Check out my blog at http://tjoe.wordpress.com
|
|
|
|
|
XmlElement can not be used on a class only property, index, field or param.
The XmlRoot attribute simply tells the serializer that for this particular class to use a specific name for the node, it doesn't directly relate to the root element of the doc.
Cheers
Nathan
|
|
|
|
|
Sorry, my memory isn't what is used to be Here is the code that should do what you want...
[XmlType(TypeName = "Item")]
public class LookupItem {
}
[XmlRoot("Clean")]
public class LookupItemList : List<LookupItem> {
}
I'm assuming you are using a generic List and that you are serializing the List as the root object.
Take care,
Tom
-----------------------------------------------
Check out my blog at http://tjoe.wordpress.com
|
|
|
|
|
XmlType - of course!
Got so hung up on the XmlRoot that I completely forgot about that.
Got it all serializing lovely now, managed it without a specific class by simply providing a XmlRoot attribute to the serializer.
Thanks Tom
|
|
|
|
|
Hi friends,im using updatepanel.Session is not expiring..even i do Session.Abondon(),Session.Clear(),Session.RemoveAll()...but after doing log out,if i hit back button,its still working..how can i ban it..?
Hi,Im Razana
|
|
|
|
|
You could probably use the logout event to clear the session (session.clear or session.abondon);
Treat the page_load event and check for the session("UserID") (or whatever you are interested in...)
But, is it not the wrong forum?
SkyWalker
|
|
|
|
|
I know that ZedGraph is a good tool to plot 2D figures.
Is there similar free source code to plot 3D ones, which can be used in VC#?
Thank you ver much.
|
|
|
|
|
Why wouldn't you have a look here at CP[^]?
SkyWalker
|
|
|
|
|
hi,
if i am using folloing code to open a perticular xml file,
OpenFileDialog dlg = new OpenFileDialog();
dlg.Title = "Open XML File";
dlg.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*" ;
if (dlg.ShowDialog() == DialogResult.OK)
{
doc.Load(dlg.OpenFile());
}
and now if i want to read a file name in the xmltextreader , how can i read it?
|
|
|
|
|