XML BLOG
=========
http://neilkilbride.blogspot.in/search/label/XML
xpath navigator
===============
http://sreeprasad.tripod.com/id9.html
1) xmldatareading
=================
studnet.xml
===========
<students>
<student sno="1000">
<sname name="ravi"></sname>
<sqly>mca</sqly>
</student>
<student sno="2000">
<sname name="varma"></sname>
<sqly>mba</sqly>
</student>
</students>
XmlDocument objXmlDocument = null;
objXmlDocument = new XmlDocument();
objXmlDocument.LoadXml(xmlData);
XmlNodeList nodelist = objXmlDocument.DocumentElement.SelectNodes("student");
foreach (XmlNode node in nodelist)
{
XmlAttribute snoattribute = node.Attributes["sno"];
sno = snoattribute.InnerText.ToString();
sname = node.SelectSingleNode("sname").Attributes["name"].Value.ToString();
sqly = node["sqly"].InnerText;
}
2) student.xml
------------
<students>
<student sno="1000">
<sname name="ravi"></sname>
<sqly>mca</sqly>
<address id="ADD1000">
<city>pqrcity</city>
<street>xyzstate</street>
<contactno number="786"></contactno>
</address>
</student>
<student sno="2000">
<sname name="varma"></sname>
<sqly>mba</sqly>
<address id="ADD200">
<city>mnpcity</city>
<street>abcstate</street>
<contactno number="420"></contactno>
</address>
</student>
</students>
objxmldoc = new XmlDocument();
objxmldoc.LoadXml(xmldata);
XmlNodeList nodelist = objxmldoc.DocumentElement.SelectNodes("student");
foreach (XmlNode node in nodelist)
{
string sno = node.Attributes["sno"].InnerText;
string sname = node.SelectSingleNode("sname").Attributes["name"].InnerText;
string sqly = node["sqly"].InnerText;
string address = node["address"].Attributes["id"].Value;
string city = node["address"].SelectSingleNode("city").InnerText;
string contactno = node["address"].SelectSingleNode("contactno").Attributes["number"].Value;
3) Reading xml data
3 levels
node[ ].selectsinglenode( ).attribute[ ]
2 levels
node[ ].selectsinglenod( ).innertext
1 level
node[ ].attribute[ ].innetText
0 level
node[ ].innerText
4) XML CREATION
------------
http://www.dotnetspider.com/resources/19581-Create-XML-File-Using-C-NET.aspx
5) XML TEMPLATE CREATION BASED ON DATA FROM DATABASE
--------------------------------------------------
UNDER PAGE_LOAD
---------------
con = new SqlConnection(sqlconn);
con.Open();
cmd = new SqlCommand("sp_testtbl_getdata", con);
cmd.CommandType = CommandType.StoredProcedure;
dr = cmd.ExecuteReader();
XmlTextWriter xmlWritter = new XmlTextWriter("E:\\Mtncommontpbill\\testing1.xml", Encoding.UTF8);
xmlWritter.WriteStartDocument(true);
xmlWritter.WriteStartElement("students");
while (dr.Read())
{
//sno,[name],sqly,id,city,street,number TABLE COLUMN NAMES
xmlWritter.WriteStartElement("student");
xmlWritter.WriteStartAttribute("sno");
//xmlWritter.WriteString("1000");
xmlWritter.WriteString(dr["sno"].ToString());
xmlWritter.WriteEndAttribute();
xmlWritter.WriteStartElement("sname");
xmlWritter.WriteStartAttribute("name");
xmlWritter.WriteString(dr["name"].ToString());
xmlWritter.WriteEndAttribute();
xmlWritter.WriteEndElement();
xmlWritter.WriteStartElement("sqly");
xmlWritter.WriteString(dr["sqly"].ToString());
xmlWritter.WriteEndElement();
// xmlWritter.WriteEndAttribute();
xmlWritter.WriteStartElement("address");
xmlWritter.WriteStartAttribute("id");
xmlWritter.WriteString(dr["id"].ToString());
xmlWritter.WriteEndAttribute();
xmlWritter.WriteStartElement("city");
xmlWritter.WriteString(dr["city"].ToString());
xmlWritter.WriteEndElement();
// xmlWritter.WriteEndAttribute();
xmlWritter.WriteStartElement("street");
xmlWritter.WriteString(dr["street"].ToString());
xmlWritter.WriteEndElement();
// xmlWritter.WriteEndAttribute();
xmlWritter.WriteStartElement("contactno");
xmlWritter.WriteStartAttribute("number");
xmlWritter.WriteString(dr["number"].ToString());
xmlWritter.WriteEndAttribute();
xmlWritter.WriteEndElement();
xmlWritter.WriteEndElement(); // END OF ADDRESS
xmlWritter.WriteEndElement(); // END OF STUDENT
}
// xmlWritter.WriteEndElement(); //END OF student
xmlWritter.WriteEndElement(); //END OF students
// xmlWritter.WriteEndElement(); //END OD rootelement
xmlWritter.WriteEndDocument();
xmlWritter.Flush();
xmlWritter.Close();
con.Close();
OUTPUT:
-----------
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<students>
<student sno="1000">
<sname name="ravi" />
<sqly>mca</sqly>
<address id="ADD1000">
<city>vizag</city>
<street>mvp</street>
<contactno number="1245" />
</address>
</student>
<student sno="2000">
<sname name="varma" />
<sqly>mba</sqly>
<address id="ADD2000">
<city>hyd</city>
<street>srnagar</street>
<contactno number="5421" />
</address>
</student>
</students>
6) Get the specific node from the xml document
--------------------------------------------
i) string tTemplate = string.Empty;
string dTemplate = string.Empty;
XmlDocument doc = new XmlDocument();
doc.Load("E:\\xmlreading\\xml\\TemlConfig.xml");
XmlNode elem = doc.DocumentElement;
string s= elem.InnerXml;
dTemplate = elem.SelectSingleNode("LEVEL_2").InnerXml;
ii)
string tTemplate = string.Empty;
string dTemplate = string.Empty;
string oTemplate = string.Empty;
string sTemplateIXml = string.Empty;
string sOutputemplateIXml = string.Empty;
string detid = HttpContext.Current.Request["det"] != null ? HttpContext.Current.Request["det"] : string.Empty;
XmlDocument doc = new XmlDocument();
XmlDocument doc1 = new XmlDocument();
// loading templateconfig file
if (ConfigurationManager.AppSettings["TemlConfig"] != null)
doc.Load(ConfigurationManager.AppSettings["TemlConfig"]);
// loading outputemplate file
if (ConfigurationManager.AppSettings["outputemplate"] != null)
doc1.Load(ConfigurationManager.AppSettings["outputemplate"]);
// assigning node from teplateconfig file and outputemplate file
XmlNode elem = doc.DocumentElement;
XmlNode elem1 = doc1.DocumentElement;
sTemplateIXml = elem.InnerXml;
sOutputemplateIXml = elem1.InnerXml.ToString();
//assign the specific node from Templconfig file
dTemplate = elem.SelectSingleNode("LEVEL_" + detid).InnerXml;
Replacecontent(ref dTemplate);
sOutputemplateIXml = sOutputemplateIXml.Replace("!RSSELEMENTS!", dTemplate);
Response.ContentType = "xml";
Response.Write(sOutputemplateIXml);
}
private void Replacecontent(ref string s)
{
s = s.Replace("!TITLE!", "testing title");
s = s.Replace("!DESC!", "testing description");
s = s.Replace("!DISPURL!", "testing dispurl");
}
7) adding namespace to xml
------------------------
XmlDocument data = new XmlDocument();
XmlNamespaceManager xsl = new XmlNamespaceManager(data.NameTable);
xsl.AddNamespace("yahoo:uri", "http://where.yahooapis.com/v1/place/2295414");
data.Load(url);
8) Reading chidnodes based on condition(Related to Task2)
if (ConfigurationManager.AppSettings["weatherplaceurl"] != null)
url = Convert.ToString(ConfigurationManager.AppSettings["weatherplaceurl"]);
url = url.Replace("!Replacename!", "hyderabad");
XmlDocument data = new XmlDocument();
XmlNamespaceManager xsl = new XmlNamespaceManager(data.NameTable);
xsl.AddNamespace("yahoo:uri", "http://where.yahooapis.com/v1/place/2295414");
data.Load(url);
XmlNode objResultNode;
XmlNodeList objWoeidNodeList;
XmlElement root = data.DocumentElement;
objResultNode = root.SelectSingleNode("results", xsl);
if (objResultNode != null && objResultNode.ChildNodes.Count > 0)
{
objWoeidNodeList = objResultNode.ChildNodes;
for (int intPriceNode = 0; intPriceNode < objWoeidNodeList.Count; intPriceNode++)
{
XmlNode objWoeidNode = objWoeidNodeList[intPriceNode].ChildNodes[0];
if (objWoeidNode != null && objWoeidNode.Name.Trim().ToUpper() == "WOEID")
{
string strID = Convert.ToString(objWoeidNode.InnerText);
getResponse(strID);
}
}
}
9) saveing registration details in xml and check those details in xml
=================================================================
under registration button click
==============================
if (!File.Exists("E:\\xmlreading\\xml\\Regxml.xml"))
{
XmlTextWriter xmlWritter = new XmlTextWriter("E:\\xmlreading\\xml\\Regxml.xml", Encoding.UTF8);
xmlWritter.WriteStartDocument(true);
xmlWritter.WriteStartElement("Details");
xmlWritter.WriteStartElement("User");
xmlWritter.WriteStartAttribute("Username");
//xmlWritter.WriteString("1000");
xmlWritter.WriteString(txtuname.Text.Trim().ToLower());
xmlWritter.WriteStartAttribute("Password");
//xmlWritter.WriteString("1000");
xmlWritter.WriteString(txtpwd.Text.Trim());
xmlWritter.WriteStartAttribute("CreatedDate");
xmlWritter.WriteString(DateTime.Now.ToString());
xmlWritter.WriteEndAttribute();
xmlWritter.WriteEndElement(); // END OF ADDRESS
xmlWritter.WriteEndElement(); // END OF STUDENT
xmlWritter.WriteEndDocument();
xmlWritter.Flush();
xmlWritter.Close();
}
else
{
string filename = @"E:\xmlreading\xml\Regxml.xml";
//create new instance of XmlDocument
XmlDocument doc = new XmlDocument();
//load from file
doc.Load(filename);
//create node and add value
XmlNode node = doc.CreateNode(XmlNodeType.Element, "User", null);
XmlAttribute UsernameAttr = doc.CreateAttribute("Username");
UsernameAttr.Value = txtuname.Text;
node.Attributes.Append(UsernameAttr);
XmlAttribute PasswordAttr = doc.CreateAttribute("Password");
PasswordAttr.Value = txtpwd.Text;
node.Attributes.Append(PasswordAttr);
XmlAttribute CreatedDateAttr = doc.CreateAttribute("CreatedDate");
CreatedDateAttr.Value = DateTime.Now.ToString();
node.Attributes.Append(CreatedDateAttr);
doc.DocumentElement.AppendChild(node);
//save back
doc.Save(filename);
}
under checklogin button click
==============================
XmlDocument doc = new XmlDocument();
doc.Load("E:\\xmlreading\\xml\\Regxml.xml");
XmlNodeList nodelist = doc.DocumentElement.SelectNodes("User");
string strResult = string.Empty;
// foreach (XmlNode node in nodelist)
// {
// if (node.Attributes["Username"].Value == txtcheckuname.Text && node.Attributes["Password"].Value == txtcheckpwd.Text)
// {
// strResult = "success";
// break;
// }
// else
// {
// strResult = "Failed";
// }
// }
// if (strResult == "success")
// Response.Write("valid user");
//else
// Response.Write("Invalid user");
XmlNode rootnode = doc.DocumentElement;
XmlNode objxmlN = rootnode.SelectSingleNode("User[@Username='" + txtcheckuname.Text.Trim().ToLower() + "']");
if (objxmlN != null)
{
if (objxmlN.Attributes["Username"].Value == txtcheckuname.Text.Trim().ToLower() && objxmlN.Attributes["Password"].Value == txtcheckpwd.Text.Trim())
Response.Write("Valid user");
else
Response.Write("Invalid user");
}
NOTE:
eg: i am having 100 nodes to check specific node attribute value with out looping
XmlNode rootnode = doc.DocumentElement;
XmlNode objxmlN = rootnode.SelectSingleNode("User[@Username='" + txtcheckuname.Text.Trim().ToLower() + "']");
if (objxmlN != null)
{
if (objxmlN.Attributes["Username"].Value == txtcheckuname.Text.Trim().ToLower() && objxmlN.Attributes ["Password"].Value == txtcheckpwd.Text.Trim())
Response.Write("Valid user");
else
Response.Write("Invalid user");
}
10) XPATHNAVIGATION (follow this url http://www.codeproject.com/Articles/9494/Manipulate-XML-data-with-XPath-and-XmlDocument-C)
protected void Page_Load(object sender, EventArgs e)
{
string s = string.Empty;
XPathDocument document = new XPathDocument(@"E:\xmlreading\xpathnavigator\books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodes = navigator.Select("/bookstore/book/title"); //reading node value
foreach (XPathNavigator item in nodes)
{
s += item.Value + " ";
}
s = "";
XPathNodeIterator nodes1 = navigator.Select("/bookstore/book/@genre"); // reading attribute value
foreach (XPathNavigator item1 in nodes1)
{
s += item1.Value + " ";
}
s = "";
XPathNodeIterator nodes2 = navigator.Select("/bookstore/book/author/name"); // reading specifc value
foreach (XPathNavigator item2 in nodes2)
{
s += item2.Value + " ";
}
s = "";
XPathNodeIterator nodes3 = navigator.Select("/bookstore/book/author/first-name[text()='Herman']"); // reading specifc value based on condition
// XPathExpression expression;
// expression = navigator.Compile("/bookstore/book[author/first-name[text()='Herman'))"; // and @stufe='1']/@stufe");
if (nodes3.Count > 0)
{
foreach (XPathNavigator item3 in nodes3)
{
s += item3.Value + " ";
}
}
}
11) UPDATING PERTUCULAT NODE ITMES BASED ON CONDITION
=================================================
XmlTextReader reader = new XmlTextReader(@"E:\xmlreading\xpathnavigator\Catelogcd.xml");
XmlDocument doc = new XmlDocument();
doc.Load(reader);
reader.Close();
//Select the Matching node with the cd title
//Select the cd node with the matching title
XmlNode oldCd;
XmlElement root = doc.DocumentElement;
oldCd = root.SelectSingleNode("/catalog/cd[title='" + "Greatest Hits" + "']");
XmlElement newCd = doc.CreateElement("cd");
newCd.SetAttribute("country", "INDIA");
newCd.InnerXml = "<title>" + "NEWTITLE" + "</title>" +
"<artist>" + "NEW ARTIST" + "</artist>" +
"<price>" + "NEW PRICE" + "</price>";
root.ReplaceChild(newCd, oldCd);
//save the output to a file
doc.Save("E:\\xmlreading\\xpathnavigator\\Catelogcd.xml");
No comments:
Post a Comment