|
Got a fix from Microsoft in the end. Horah!
FIX: A deserialized object may contain null objects when you deserialize an object from XML in the .NET Framework 2.0
http://support.microsoft.com/kb/918298
|
|
|
|
|
Hi All,
If we have a table in database which has one of the columns as XMl, we can use that XML record.value('/fieldname[1]','varchar(10)') to get the actual value of the fieldname from that XML record.
But what if we don't know the exaxt name of the field whose value has to be fetched, but we are sure that the pattern we give in will only fetch us one record, then is there a way to specify a pattern matching stuff like a normal like statement using '%Something', which would give us all records ending in "Something".
How do i do this.
Pls guide me
Omkar
|
|
|
|
|
you can try it, you want to get data form the table in xml format.
"Select * from table_name FOR XML AUTO"
this Query will returning the data in xml format.
Select * from table_name FOR XML EXPLICIT
this Query specify the "shape" of the XML data.
Select * from table_name FOR XML ELEMENTS
Enjoy
Pavan Pareta
|
|
|
|
|
hi,
i want to stroe image in xml file without using image file path, image file should be only and only in xml file. please help me.
-- modified at 1:11 Friday 20th October, 2006
Pavan Pareta
|
|
|
|
|
|
Check the NodeType to avoid endelement tags:
while(objXmlTextReader.Read())
{
if (objXmlTextReader.NodeType != XmlNodeType.EndElement)
Databasecb.Items.Add(objXmlTextReader.Name.ToString());
}
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
thanks stefan
ur help was greatly valued and appreciated.
until next time
goodbye
|
|
|
|
|
hello friends
i'm trying to insert new tags into an already existing XML document.
but it is not working properly. i get the exception
"The writer is closed"
the code i'm using is:
<br />
doc.Load(Application.StartupPath + @"\Databases.xml");<br />
<br />
XmlElement newElement=doc.CreateElement(Global.Instance.DBname); <br />
doc.DocumentElement.AppendChild(newElement);<br />
dbTextFile.Formatting=Formatting.Indented;<br />
<br />
doc.WriteContentTo(dbTextFile);<big><---EXCEPTION GENERATES HERE</big><br />
<br />
dbTextFile.Close();<br />
MessageBox.Show("The following file has been successfully upgraded\r\n"+ sStartupPath+ @"\Databases.xml", "XML", MessageBoxButtons.OK,MessageBoxIcon.Information);
|
|
|
|
|
Where do you create the XmltextWriter passed to the WriteContentTo method? I seems you already called Close on this writer and need to create a new one.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
heres another problem. i'm getting another exception that states that::
"the process cannot access the .....\Databases.xml" because it is being used by another process."
i've checked the process that are running but can't seem to find it.
the exception arises whenever i use the code
doc.Load(Application.StartupPath + @"\Databases.xml");
can u please tell me what the problem is??
thanks
-- modified at 4:36 Wednesday 18th October, 2006
|
|
|
|
|
Obviously something exclusively accesses the XML file. Maybe the XmlTextWriter that I saw in the code of your starting post. Hard to say without knowing the code.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
Hi all,
We have an xsl file from which we are reading content and displaying it in a .aspx page.
We want to include a footer at the end of every page in the print preview.
We are facing a lot of problems in the positioning of the footer.
Is there any way to ensure that the footer comes at the end of the page irrespective of the page content ala footer in word?
Thanks in anticipation.
If you fail for the first time , call it version 1.0.
|
|
|
|
|
Hi,
I am trying to use XML file as an config file. The structure of the xml file is quite simple. It needs to have only
5 fields. This file stores information about 3 websites - so ideally structure should be like
<root>
<config>
<website 1="">
<url>test
<delay>23
<username>23
<password>32423
<website 2="">
<url>test
<delay>23
<username>23
<password>32423
I am using following code to create this Xml schema and xml file - but having some trouble (which i don't know WHY -
and I seek your guidence...)
public void create_Config_Table(string service_name, string url, string delay,
string freq, string username, string password)
{
string filename = "config.xml";
FileStream fs;
XmlTextWriter xtw;
XmlTextReader xtr;
string msg = "";
//create the table and then populate it
DataTable ret = new DataTable(service_name);
//Create the DataSet
DataSet ds = new DataSet("AutoMessage");
//first check if config.xml exists or not
//If it already exists then we don't have to recreate the XML schema for it
if( ! File.Exists(filename) )
{
//ret.Columns.Add("Service", Type.GetType("System.String"));
ret.Columns.Add("URL",Type.GetType("System.String"));
ret.Columns.Add("Delay", Type.GetType("System.String"));
ret.Columns.Add("Frequency",Type.GetType("System.String"));
ret.Columns.Add("Username",Type.GetType("System.String"));
ret.Columns.Add("Password",Type.GetType("System.String"));
//Now populate the data table
DataRow row = ret.NewRow();
//row["Service"] = service_name;
row["URL"] = url;
row["Delay"] = delay;
row["Frequency"] = freq;
row["Username"] = username;
row["Password"] = password;
ret.Rows.Add(row);
ds.Tables.Add(ret);
msg = "Config File Created";
}
else
{
//Read the XML File
try
{
fs = new FileStream(filename, FileMode.Open);
xtr = new XmlTextReader(fs);
ds.ReadXml(xtr);
xtr.Close();
DataTable dt = ds.Tables[0];
DataRow row = dt.NewRow();
//row["Service"] = service_name;
row["URL"] = url;
row["Delay"] = delay;
row["Frequency"] = freq;
row["Username"] = username;
row["Password"] = password;
dt.Rows.Add(row);
ds.Tables.Remove(ds.Tables[0].TableName);
ds.Tables.Add(dt);
msg = "Config File Updated";
}
catch(Exception ex) { Console.Error.WriteLine(ex.ToString() ) ; }
fs = null;
}
try
{
fs= new FileStream(filename, FileMode.Append,FileAccess.Write);
xtw = new XmlTextWriter(fs, System.Text.Encoding.Unicode);
ds.WriteXml(xtw);
xtw.Close();
Console.Write(msg);
}
catch(Exception ex) { Console.Error.WriteLine(ex.ToString() ); }
}
Logic here is that if file doesn't exists - it will create the xml schema and the xml file
if it does EXISTS - then it is read into an dataset - new values are appeneded to contents of this dataset it is
written back as a xml file.
- Major problem is that it creates a mal-formed XML (multiple root elements)
-- Any Suggestions
THanx in advance
|
|
|
|
|
System.IO.StringReader sr = new System.IO.StringReader(ds.GetXml());
System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(sr);
ds.WriteXml("cpTest.xml");
Creates a file which looks like the following;
<AutoMessage>
<Services>
<URL>test.com</URL>
<Delay>5</Delay>
<Frequency>10</Frequency>
<Username>mnvkng76</Username>
<Password>aPassword</Password>
</Services>
</AutoMessage>
Is that what you needed?
|
|
|
|
|
This is what I want:
ns0:Interchange xmlns:ns0="http://www.e2b.no/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.e2b.no/XMLSchema e2b_Invoice_Interchange_v3p2.xsd"
The attribute schemaLocation I make with this code
<br />
XmlAttribute atrXsiSchemaLocation = null;<br />
atrXsiSchemaLocation = invoiceE2BDocument.CreateAttribute("xsi:schemaLocation");<br />
atrXsiSchemaLocation.Value = "http://www.e2b.no/XMLSchema e2b_Invoice_Interchange_v3p2.xsd";<br />
elmInterchange.Attributes.Append(atrXsiSchemaLocation);<br />
But the "xsi:" is somehow gone and I get
schemaLocation="http://www.e2b.no/XMLSchema e2b_Invoice_Interchange_v3p2.xsd"
So I replaced the code with:
<br />
atrXsiSchemaLocation = invoiceE2BDocument.CreateAttribute("xsi", "schemaLocation", "xsi");<br />
but then I got:
d3p1:schemaLocation="http://www.e2b.no/XMLSchema e2b_Invoice_Interchange_v3p2.xsd" xmlns:d3p1="xsi"
Does anyone know how to fix this?
Thanks
Thomas
-- modified at 8:35 Friday 13th October, 2006
|
|
|
|
|
Does the following work?
atrXsiSchemaLocation = invoiceE2BDocument.CreateAttribute("xsi", "schemaLocation", "http://www.w3.org/2001/XMLSchema-instance");
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
No the result was:
d3p1:schemaLocation="" xmlns:d3p1="http://www.e2b.no/XMLSchema e2b_Invoice_Interchange_v3p2.xsd"
|
|
|
|
|
Just before I save the xml file:
<br />
invoiceE2BDocument.InnerXml = invoiceE2BDocument.InnerXml.Replace("schemaLocation", "xsi:schemaLocation");<br />
It's not a good solution, but it works.
|
|
|
|
|
You should either check the "Ignore HTML tags in this message" box situated beneath the smilies or replace all opening tags with <, so we are able to see your xml.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
Hi,
I need to generate documentation in the chm(compiled html) format.
what i did is I generated xml file from visual studio,now can you tell me any converter for XML to Chm.
Thanks
Today is a gift, that's why it is called the present.
|
|
|
|
|
There is the open-source project NDOC but it's no longer active AFAIK and doesn't support .NET 2.0.
Microsoft has also released a help builder called Sandcastle they used to build framework documentation. Take a look at this article[^] which presents a nice GUI for it.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
hi
how can i convert the content specified in the parameters text box(parameter indicates that textbox can consist any parameter that is used to make query) to filter encoded xml.
thanx in advance.
|
|
|
|
|
xn.OuterXml
"<doclibs text="\"Corporate" services\"="" url="\"http://sanpaula/CorporateServices\"" id="\"996bba7e-3d2a-406a-a0e5-90f39589ed9f\""><doclibs text="\"Secretary's" office\"="" url="\"http://sanpaula/C4/SecretaryOffice\"" id="\"23baa62f-5dd3-461a-875e-f37fa0035d71\""><doclib text="\"Dummy\"" id="\"-1\"">"
Corporate Services
Secretary's Office
xn.SelectSingleNode("*[@text='Secretary's Office']");
This is probably a stupid question. My xml contains a single quote in Secretary's Office. When searching, I tried replacing ' with ' but this did not work.
Is the answer simply that the XML is incorrect?
|
|
|
|
|
C# does not understand entities! Use escape sequences.
xn.SelectSingleNode("*[@text=\"Secretary\'s Office\"]");
|
|
|
|
|
Thanks, that did the trick. However you'd be up the creek if text contained both " and '
If the XML police saw the xml which contained ',",&,<,> wouldn't they give me a ticket?
|
|
|
|