using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Xml.XPath;
using System.Text;
using System.IO;
namespace CodeBank.System_Xml_XPath {
///
/// Summary description for SortingXML.
///
public class SortingXML : System.Web.UI.Page {
protected System.Web.UI.WebControls.Label lblSorted;
protected System.Web.UI.WebControls.Label lblSorted1;
protected System.Web.UI.WebControls.Label lblSorted2;
protected System.Web.UI.WebControls.Label AN_0;
protected System.Web.UI.WebControls.Label AN_A;
protected System.Web.UI.WebControls.Label AN_B;
protected System.Web.UI.WebControls.Label AN_C;
protected System.Web.UI.WebControls.Label AN_D;
protected System.Web.UI.WebControls.Label AN_E;
protected System.Web.UI.WebControls.Label AN_F;
protected System.Web.UI.WebControls.Label AN_G;
protected System.Web.UI.WebControls.Label AN_H;
protected System.Web.UI.WebControls.Label AN_I;
protected System.Web.UI.WebControls.Label AN_J;
protected System.Web.UI.WebControls.Label AN_K;
protected System.Web.UI.WebControls.Label AN_L;
protected System.Web.UI.WebControls.Label AN_M;
protected System.Web.UI.WebControls.Label AN_N;
protected System.Web.UI.WebControls.Label AN_O;
protected System.Web.UI.WebControls.Label AN_P;
protected System.Web.UI.WebControls.Label AN_Q;
protected System.Web.UI.WebControls.Label AN_R;
protected System.Web.UI.WebControls.Label AN_S;
protected System.Web.UI.WebControls.Label AN_T;
protected System.Web.UI.WebControls.Label AN_U;
protected System.Web.UI.WebControls.Label AN_V;
protected System.Web.UI.WebControls.Label AN_W;
protected System.Web.UI.WebControls.Label AN_X;
protected System.Web.UI.WebControls.Label AN_Y;
protected System.Web.UI.WebControls.Label AN_Z;
protected System.Web.UI.WebControls.Label AN_TOTAL;
public string paraValue="";
private void Page_Load(object sender, System.EventArgs e) {
if (File.Exists(Server.MapPath("glossary_data.xml")))
this.lblSorted.Text="";
else
{
this.lblSorted.Text="You did not generate XML data file for glossary, please use CisTra.NET glossary engine to create it, otherwise contact Ronnie Li for help.";
return;
}
string xpath0 ="";
string xpath ="";
string xpath1 ="";
string xpath2 ="";
string xpath3 ="";
string xpathCount ="";
if (Request.QueryString["id"]!="" && Request.QueryString["id"]!=null ) {
paraValue=Request.QueryString["id"].Trim().ToUpper();
xpath0 = "/NewDataSet/Table/GlossaryID[../GlossaryAN='"+paraValue+"']"; //Query select GlossaryAbb AN='O'
xpath = "/NewDataSet/Table/GlossaryAbb[../GlossaryAN='"+paraValue+"']"; //Query select GlossaryAbb AN='O'
xpath1 = "/NewDataSet/Table/GlossaryDescp[../GlossaryAN='"+paraValue+"']"; //Query select GlossaryAbb AN='O'
xpath2 = "/NewDataSet/Table/GlossaryLink[../GlossaryAN='"+paraValue+"']"; //Query select GlossaryAbb AN='O'
xpath3 = "/NewDataSet/Table/GlossaryFull[../GlossaryAN='"+paraValue+"']"; //Query select GlossaryAbb AN='O'
xpathCount = "count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='"+paraValue+"'])"; //Count
}else{
paraValue="All Glossary";
xpath0 = "/NewDataSet/Table/GlossaryID"; //Query select GlossaryAbb ALL
xpath = "/NewDataSet/Table/GlossaryAbb"; //Query select GlossaryAbb ALL
xpath1 = "/NewDataSet/Table/GlossaryDescp"; //Query select GlossaryAbb ALL
xpath2 = "/NewDataSet/Table/GlossaryLink"; //Query select GlossaryAbb ALL
xpath3 = "/NewDataSet/Table/GlossaryFull"; //Query select GlossaryAbb AN='O'
xpathCount = "count(/NewDataSet/Table/GlossaryAbb)"; //Count
}
StringBuilder Sorted = new StringBuilder();
StringBuilder Sorted2 = new StringBuilder();
//Create XPathDocument class so we can get a navigator
XPathDocument doc = new XPathDocument(Server.MapPath("glossary_data.xml"));
XPathNavigator nav = doc.CreateNavigator();
this.AN_0.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='0'])").ToString();
this.AN_A.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='A'])").ToString();
this.AN_B.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='B'])").ToString();
this.AN_C.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='C'])").ToString();
this.AN_D.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='D'])").ToString();
this.AN_E.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='E'])").ToString();
this.AN_F.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='F'])").ToString();
this.AN_G.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='G'])").ToString();
this.AN_H.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='H'])").ToString();
this.AN_I.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='I'])").ToString();
this.AN_J.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='J'])").ToString();
this.AN_K.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='K'])").ToString();
this.AN_L.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='L'])").ToString();
this.AN_M.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='M'])").ToString();
this.AN_N.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='N'])").ToString();
this.AN_O.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='O'])").ToString();
this.AN_P.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='P'])").ToString();
this.AN_Q.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='Q'])").ToString();
this.AN_R.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='R'])").ToString();
this.AN_S.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='S'])").ToString();
this.AN_T.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='T'])").ToString();
this.AN_U.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='U'])").ToString();
this.AN_V.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='V'])").ToString();
this.AN_W.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='W'])").ToString();
this.AN_X.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='X'])").ToString();
this.AN_Y.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='Y'])").ToString();
this.AN_Z.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb[../GlossaryAN='Z'])").ToString();
this.AN_TOTAL.Text = nav.Evaluate("count(/NewDataSet/Table/GlossaryAbb)").ToString();
//Compile xpath expression so we can add a sort to it -START have a problem when do soring --synchronizing problem June 03, 2003 Ronnie Li
XPathExpression exp = nav.Compile(xpath);
exp.AddSort("GlossaryAN",XmlSortOrder.Ascending,XmlCaseOrder.None,"",XmlDataType.Text);
XPathExpression exp0 = nav.Compile(xpath0);
exp.AddSort("GlossaryAN",XmlSortOrder.Ascending,XmlCaseOrder.None,"",XmlDataType.Text);
XPathExpression exp1 = nav.Compile(xpath1);
exp1.AddSort("GlossaryAN",XmlSortOrder.Ascending,XmlCaseOrder.None,"",XmlDataType.Text);
XPathExpression exp2 = nav.Compile(xpath2);
exp2.AddSort("GlossaryAN",XmlSortOrder.Ascending,XmlCaseOrder.None,"",XmlDataType.Text);
XPathExpression exp3 = nav.Compile(xpath3);
exp3.AddSort("GlossaryAN",XmlSortOrder.Ascending,XmlCaseOrder.None,"",XmlDataType.Text);
XPathNodeIterator nodeIter1 = nav.Select(exp);
XPathNodeIterator nodeIter1_0 = nav.Select(exp0);
XPathNodeIterator nodeIter1_1 = nav.Select(exp1);
XPathNodeIterator nodeIter1_2 = nav.Select(exp2);
XPathNodeIterator nodeIter1_3 = nav.Select(exp3);
//Compile xpath expression so we can add a sort to it -END , synchronizing problem has been soved on June 04, 2003
// XPathNodeIterator nodeIter1 = nav.Select(xpath);
// XPathNodeIterator nodeIter1_1 = nav.Select(xpath1);
// XPathNodeIterator nodeIter1_0 = nav.Select(xpath0);
while (nodeIter1.MoveNext()) {
nodeIter1_1.MoveNext();
nodeIter1_0.MoveNext();
nodeIter1_2.MoveNext();
nodeIter1_3.MoveNext();
Sorted.Append(""+nodeIter1.Current.Value+""+ nodeIter1_3.Current.Value +"
"+nodeIter1_1.Current.Value+ "
"+nodeIter1_2.Current.Value+"
"+"To Top
");
Sorted2.Append(""+nodeIter1.Current.Value+"
");
}
// this.lblSorted1.Text ="OIL GOTO";
this.lblSorted1.Text ="Term-"+paraValue+" | Total items:"+nav.Evaluate(xpathCount).ToString();
this.lblSorted2.Text = Sorted2.ToString();
this.lblSorted.Text = Sorted.ToString();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}