1.
XML
的解析方法
(XmlTextReader
的使用
)
[
yellowpage.xml]
<?xml version="1.0" encoding="UTF-8"?>
<results count="10" offset="1" total="226">
<result>
<ypinfoid>10704462</ypinfoid>
<title>北京大学</title>
<phone>01062752114</phone>
<address>北京市海淀区颐和园路5号</address>
<coordinates format="WGS-84">
<latitude>4426974</latitude>
<longitude>441565</longitude>
</coordinates>
<category>A700</category>
</result>
<result>
<ypinfoid>1317519</ypinfoid>
<title>北京大学邮电所</title>
<phone>01062613356</phone>
<address>北京市海淀区颐和园路5号</address>
<coordinates format="WGS-84">
<latitude>4427384</latitude>
<longitude>440632</longitude>
</coordinates>
</result>
<result>
<ypinfoid>1454200</ypinfoid>
<title>北京大学医学部</title>
<phone>01062091114</phone>
<address>北京市海淀区学院路38号</address>
<coordinates format="WGS-84">
<latitude>4426192</latitude>
<longitude>444850</longitude>
</coordinates>
</result>
</results>
以上面
yellowpage.xml
为例所示的
xml
数据
:
A. 方法一: 通过XmlTextReader.EOF流结尾作循环结束标志控制(
读取时要顺序读取)
private void ParserXML(XmlTextReader reader)
{
reader.WhitespaceHandling=WhitespaceHandling.None;
reader.MoveToContent(); //跳过声明和注释
if(reader.Name=="results"&&reader.HasAttributes) //读取属性
ReaderXmlAttribute(reader);
reader.MoveToElement(); //返回包含当前属性的结点
System.Console.WriteLine("***********======"+reader.Name);
try
{
reader.Read(); //跳过根Results结点
int count=0;
while(!reader.EOF&&reader.Name!="results")
{
// if(reader.Name=="results")break; System.Console.WriteLine("====="+reader.Name+(++count).ToString());
//以result开始,即以result开始是一条记录
reader.ReadStartElement("result");
reader.ReadStartElement("ypinfoid");
//读取该元素的文本值
System.Console.WriteLine("ypinfoid Text=="+reader.ReadString());
// ypinfoid的结束标志,并跳入下一节点
reader.ReadEndElement();
reader.ReadStartElement("title");
System.Console.WriteLine("title Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("phone");
System.Console.WriteLine("phone Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
reader.ReadStartElement("address"); System.Console.WriteLine("address Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
if(reader.Name=="coordinates")
{
if(reader.HasAttributes)
{ Console.WriteLine("!!!!!!!!!!!!!!!!===attribue==="+reader.GetAttribute(0));
}
reader.ReadStartElement("coordinates"); reader.ReadStartElement("latitude");
System.Console.WriteLine("latitude Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("longitude");
ystem.Console.WriteLine("longitude Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadEndElement();
}
if(reader.Name=="category")
{
reader.ReadStartElement("category");
System.Console.WriteLine("latitude Text=="+reader.ReadString());
reader.ReadEndElement();
}
reader.ReadEndElement();
}
if(reader!=null)
{
reader.Close();
System.Console.WriteLine("Reader Closed State=******");
}
reader=null;
}
catch(Exception e){ }
}
B. 方法一: 通过XmlTextReader.Read()节点跳进和对名字判断进行循环控制
XmlTextReader reader = null;
try
{
//Load the reader with the XML file.
reader = new XmlTextReader("yellowpage.xml");
reader.WhitespaceHandling=WhitespaceHandling.None;
reader.MoveToContent();
if(reader.HasAttributes)
{
for(int i=0;i<reader.AttributeCount;i++)
{
reader.MoveToAttribute(i); Console.WriteLine("Name="+reader.Name+" :"+"value="+reader.Value);
}
}
int ii=0;
//Parse the XML and display the text content of each of the elements.
while (reader.Read()){
Console.WriteLine("===========================================");
Console.WriteLine("##### "+reader.Name+" :: "+(++ii).ToString());
if (reader.IsStartElement("result")&&!reader.IsEmptyElement)
{
while(reader.Read()&&reader.Name!="result")
{
Console.WriteLine("=========="+reader.Name);
if(reader.IsStartElement()&&!reader.IsEmptyElement)
{
string subName=reader.Name;
if(subName=="coordinates")
{
if(reader.HasAttributes)
{
for(int i=0;i<reader.AttributeCount;i++)
Console.WriteLine("coordinates Attribute = "+reader.GetAttribute(i));
}
while(reader.Read()&&reader.Name!="coordinates")
{
if(reader.IsStartElement("latitude")&&!reader.IsEmptyElement)
{
Console.WriteLine("latitude text==="+reader.ReadString());
} if(reader.IsStartElement("longitude")&&!reader.IsEmptyElement)
{
Console.WriteLine("longitude text==="+reader.ReadString());
}
}
}
else
{
string subText=reader.ReadString(); Console.WriteLine("*******===== "+subText);
if(subName=="ypinfoid")
{
Console.WriteLine("ypinfoid text==="+subText);
}
if(subName=="title")
{
Console.WriteLine("title text==="+subText);
}
if(subName=="phone")
{
Console.WriteLine("phone text==="+subText);
}
if(subName=="address")
{
Console.WriteLine("address text==="+subText);
}
if(subName=="category")
{
Console.WriteLine("category text==="+subText);
}
}
}
}
}
}
}
finally
{
if (reader != null)
reader.Close();
}
}
using
System;
using System.IO;
using System.Xml;
public class Sample
... {
public static void Main()
...{
XmlTextReader reader = null;
try
...{
//Load the reader with the XML file.
reader = new XmlTextReader("yellowpage.xml");
reader.WhitespaceHandling=WhitespaceHandling.None;
/**//*
reader.MoveToContent();
int count=0;
while(!reader.EOF)
{
// Console.WriteLine("======= "+reader.Name);
if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="ypinfoid")
{
Console.WriteLine("ypinfoid Text== "+reader.ReadElementString());
}
else
if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="title")
{
Console.WriteLine("title Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="phone")
{
Console.WriteLine("phone Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="address")
{
Console.WriteLine("address Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="latitude")
{
Console.WriteLine("latitude Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="longitude")
{
Console.WriteLine("longitude Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="category")
{
Console.WriteLine("category Text== "+reader.ReadElementString());
Console.WriteLine("============================================ "+(++count).ToString());
}
else
reader.Read();
}
*/
reader.MoveToContent();
if(reader.HasAttributes)
...{
for(int i=0;i<reader.AttributeCount;i++)
...{
reader.MoveToAttribute(i);
Console.WriteLine("Name="+reader.Name+" :"+"value="+reader.Value);
}
}
int ii=0;
//Parse the XML and display the text content of each of the elements.
while (reader.Read())...{
Console.WriteLine("==================================================================");
Console.WriteLine("##### "+reader.Name+" :: "+(++ii).ToString());
if (reader.IsStartElement("result")&&!reader.IsEmptyElement)
...{
while(reader.Read()&&reader.Name!="result")
...{
Console.WriteLine("=========="+reader.Name);
if(reader.IsStartElement()&&!reader.IsEmptyElement)
...{
string subName=reader.Name;
// string subText=reader.ReadElementString();
if(subName=="coordinates")
...{
if(reader.HasAttributes)
...{
for(int i=0;i<reader.AttributeCount;i++)
Console.WriteLine("coordinates Attribute = "+reader.GetAttribute(i));
}
while(reader.Read()&&reader.Name!="coordinates")
...{
if(reader.IsStartElement("latitude")&&!reader.IsEmptyElement)
...{
Console.WriteLine("latitude text==="+reader.ReadString());
// Console.WriteLine("latitude text=== "+subText);
}
if(reader.IsStartElement("longitude")&&!reader.IsEmptyElement)
...{
Console.WriteLine("longitude text==="+reader.ReadString());
// Console.WriteLine("longitude text==="+subText);
}
}
}
else
...{
// reader.Read();
string subText=reader.ReadString();
Console.WriteLine("********************===== "+subText);
if(subName=="ypinfoid")
...{
// Console.WriteLine("ypinfoid text==="+reader.ReadString());
Console.WriteLine("ypinfoid text==="+subText);
}
if(subName=="title")
...{
// Console.WriteLine("title text==="+reader.ReadString());
Console.WriteLine("title text==="+subText);
}
if(subName=="phone")
...{
// Console.WriteLine("phone text==="+reader.ReadString());
Console.WriteLine("phone text==="+subText);
}
if(subName=="address")
...{
// Console.WriteLine("address text==="+reader.ReadString());
Console.WriteLine("address text==="+subText);
}
if(subName=="category")
...{
// Console.WriteLine("category text==="+reader.ReadString());
Console.WriteLine("category text==="+subText);
}
}
}
}
}
}
}
finally
...{
if (reader != null)
reader.Close();
}
}
} // End class
// ======================================================================================= //
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Net;
using System.Threading;
using System.Reflection;
using System.Xml;
public class ParserXml
... {
private const string TestURL="http://203.81.20.78:8080/yindex/yellowpage?keyword=%E5%8C%97%E4%BA%AC%E5%A4%A7%E5%AD%A6%20&location=%E5%8C%97%E4%BA%AC&rpp=10&search_type=yellowpage&offset=1&hl=31";
========联网处理=====================//#region========联网处理=====================//
private void StartScanURL(string url)
...{
Console.WriteLine("==============================================");
HttpWebRequest request=null;
try
...{
request=(HttpWebRequest)WebRequest.Create(url);
request.Method="GET";
System.IAsyncResult request_result=request.BeginGetResponse(new System.AsyncCallback(EndScanURL),request);
}
catch(WebException we)...{PrintErrMsg(we.Message);}
catch(Exception e)...{PrintErrMsg(e.Message);}
finally
...{
request=null;
}
}
private void EndScanURL(System.IAsyncResult aResult)
...{
HttpWebRequest httpRequest=null;
HttpWebResponse httpResponse=null;
Stream xmlStream=null;
XmlTextReader XmlReader=null;
try
...{
httpRequest=(HttpWebRequest)aResult.AsyncState;
httpResponse=(HttpWebResponse)httpRequest.EndGetResponse(aResult);
xmlStream=httpResponse.GetResponseStream();
XmlReader=new XmlTextReader(xmlStream);
ParserXML(XmlReader);
}
catch(XmlException xmle)...{PrintErrMsg(xmle.Message);}
catch(Exception e)...{PrintErrMsg(e.Message);}
finally
...{
if(httpResponse!=null)
httpResponse.Close();
if(xmlStream!=null)
xmlStream.Close();
if(XmlReader!=null)
XmlReader.Close();
XmlReader=null;
httpRequest=null;
httpResponse=null;
xmlStream=null;
}
}
#endregion
============解析xml数据=======================//#region ============解析xml数据=======================//
/**//// <summary>
/// 解析xml数据
/// </summary>
/// <param name="stream"></param>
private void ParserXML(XmlTextReader reader)
...{
reader.WhitespaceHandling=WhitespaceHandling.None;
reader.MoveToContent();
if(reader.Name=="results"&&reader.HasAttributes)
ReaderXmlAttribute(reader);
reader.MoveToElement(); //返回包含当前属性的结点
System.Console.WriteLine("***********======"+reader.Name);
try
...{
reader.Read();
int count=0;
while(!reader.EOF&&reader.Name!="results")
...{
// if(reader.Name=="results")break;
System.Console.WriteLine("========================================"+reader.Name+(++count).ToString());
reader.ReadStartElement("result");
reader.ReadStartElement("ypinfoid");
System.Console.WriteLine("ypinfoid Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("title");
System.Console.WriteLine("title Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("phone");
System.Console.WriteLine("phone Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
reader.ReadStartElement("address");
System.Console.WriteLine("address Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
if(reader.Name=="coordinates")
...{
if(reader.HasAttributes)
...{
Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!===attribue==="+reader.GetAttribute(0));
}
reader.ReadStartElement("coordinates");
reader.ReadStartElement("latitude");
System.Console.WriteLine("latitude Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("longitude");
System.Console.WriteLine("longitude Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadEndElement();
}
if(reader.Name=="category")
...{
reader.ReadStartElement("category");
System.Console.WriteLine("latitude Text=="+reader.ReadString());
reader.ReadEndElement();
}
reader.ReadEndElement();
}
if(reader!=null)
...{
reader.Close();
System.Console.WriteLine("Reader Closed State=====****************************");
}
reader=null;
}
catch(Exception e)...{System.Console.WriteLine(e.Message);}
}
#endregion ===========================================//
//读取xml结点属性
private void ReaderXmlAttribute(XmlTextReader reader)
...{
#if true //Debug
System.Diagnostics.Debug.WriteLine("当前节点名字: "+reader.Name);
====Method 1===============//#region====Method 1===============//
while(reader.MoveToNextAttribute())
...{
Console.WriteLine("{0}={1}",reader.Name,reader.Value);
}
#endregion
====Method 2===============//#region====Method 2===============//
for(int i=0;i<reader.AttributeCount;i++)
...{
reader.MoveToAttribute(i);
Console.WriteLine("Name="+reader.Name+" :"+"value="+reader.Value);
}
#endregion
====Method 3===============//#region====Method 3===============//
for(int i=0;i<reader.AttributeCount;i++)
...{
Console.WriteLine("AttributeValue="+reader.GetAttribute(i));
}
#endregion
for(int j=0;j<reader.AttributeCount;j++)
...{
Console.WriteLine("attribute value= "+reader[j]);
}
#endif
}
private void RunThread()
...{
System.Threading.Monitor.Enter(this);
StartScanURL(TestURL);
System.Threading.Monitor.Exit(this);
}
private void PrintErrMsg(string messgage)
...{
// MessageBox.Show(messgage,"错误提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
MessageBox.Show(messgage);
#if Debug
System.Diagnostics.Debug.WriteLine(e.Message);
#endif
}
public ParserXml()
...{
XmlTextReader reader=new XmlTextReader("yellowpage.xml");
ParserXML(reader);
// RunThread();
// new Thread(new ThreadStart(RunThread)).Start();
}
public static void Main()
...{
new ParserXml();
/**//*
XmlTextReader reader=new XmlTextReader("TestXml.xml");
reader.WhitespaceHandling=WhitespaceHandling.None;
reader.MoveToContent();
try
{
reader.Read();
while(!reader.EOF)
{
if(reader.Name=="books")break;
System.Console.WriteLine("========================================"+reader.Name);
reader.ReadStartElement("book");
reader.ReadStartElement("title");
System.Console.WriteLine("Title Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("price");
System.Console.WriteLine("price Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("name");
System.Console.WriteLine("name Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
reader.ReadStartElement("adress");
System.Console.WriteLine("adress Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
if(reader.Name=="namespace")
{
reader.ReadStartElement("namespace");
reader.ReadStartElement("position");
System.Console.WriteLine("position Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("kinds");
System.Console.WriteLine("kinds Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadEndElement();
}
reader.ReadEndElement();
}
if(reader!=null)
{
reader.Close();
System.Console.WriteLine("****************************");
}
reader=null;
}
catch(Exception e){System.Console.WriteLine(e.Message);}
*/
}
}
using System.IO;
using System.Xml;
public class Sample
... {
public static void Main()
...{
XmlTextReader reader = null;
try
...{
//Load the reader with the XML file.
reader = new XmlTextReader("yellowpage.xml");
reader.WhitespaceHandling=WhitespaceHandling.None;
/**//*
reader.MoveToContent();
int count=0;
while(!reader.EOF)
{
// Console.WriteLine("======= "+reader.Name);
if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="ypinfoid")
{
Console.WriteLine("ypinfoid Text== "+reader.ReadElementString());
}
else
if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="title")
{
Console.WriteLine("title Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="phone")
{
Console.WriteLine("phone Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="address")
{
Console.WriteLine("address Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="latitude")
{
Console.WriteLine("latitude Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="longitude")
{
Console.WriteLine("longitude Text== "+reader.ReadElementString());
}
else if(reader.MoveToContent()==XmlNodeType.Element&&reader.Name=="category")
{
Console.WriteLine("category Text== "+reader.ReadElementString());
Console.WriteLine("============================================ "+(++count).ToString());
}
else
reader.Read();
}
*/
reader.MoveToContent();
if(reader.HasAttributes)
...{
for(int i=0;i<reader.AttributeCount;i++)
...{
reader.MoveToAttribute(i);
Console.WriteLine("Name="+reader.Name+" :"+"value="+reader.Value);
}
}
int ii=0;
//Parse the XML and display the text content of each of the elements.
while (reader.Read())...{
Console.WriteLine("==================================================================");
Console.WriteLine("##### "+reader.Name+" :: "+(++ii).ToString());
if (reader.IsStartElement("result")&&!reader.IsEmptyElement)
...{
while(reader.Read()&&reader.Name!="result")
...{
Console.WriteLine("=========="+reader.Name);
if(reader.IsStartElement()&&!reader.IsEmptyElement)
...{
string subName=reader.Name;
// string subText=reader.ReadElementString();
if(subName=="coordinates")
...{
if(reader.HasAttributes)
...{
for(int i=0;i<reader.AttributeCount;i++)
Console.WriteLine("coordinates Attribute = "+reader.GetAttribute(i));
}
while(reader.Read()&&reader.Name!="coordinates")
...{
if(reader.IsStartElement("latitude")&&!reader.IsEmptyElement)
...{
Console.WriteLine("latitude text==="+reader.ReadString());
// Console.WriteLine("latitude text=== "+subText);
}
if(reader.IsStartElement("longitude")&&!reader.IsEmptyElement)
...{
Console.WriteLine("longitude text==="+reader.ReadString());
// Console.WriteLine("longitude text==="+subText);
}
}
}
else
...{
// reader.Read();
string subText=reader.ReadString();
Console.WriteLine("********************===== "+subText);
if(subName=="ypinfoid")
...{
// Console.WriteLine("ypinfoid text==="+reader.ReadString());
Console.WriteLine("ypinfoid text==="+subText);
}
if(subName=="title")
...{
// Console.WriteLine("title text==="+reader.ReadString());
Console.WriteLine("title text==="+subText);
}
if(subName=="phone")
...{
// Console.WriteLine("phone text==="+reader.ReadString());
Console.WriteLine("phone text==="+subText);
}
if(subName=="address")
...{
// Console.WriteLine("address text==="+reader.ReadString());
Console.WriteLine("address text==="+subText);
}
if(subName=="category")
...{
// Console.WriteLine("category text==="+reader.ReadString());
Console.WriteLine("category text==="+subText);
}
}
}
}
}
}
}
finally
...{
if (reader != null)
reader.Close();
}
}
} // End class
// ======================================================================================= //
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Net;
using System.Threading;
using System.Reflection;
using System.Xml;
public class ParserXml
... {
private const string TestURL="http://203.81.20.78:8080/yindex/yellowpage?keyword=%E5%8C%97%E4%BA%AC%E5%A4%A7%E5%AD%A6%20&location=%E5%8C%97%E4%BA%AC&rpp=10&search_type=yellowpage&offset=1&hl=31";
========联网处理=====================//#region========联网处理=====================//
private void StartScanURL(string url)
...{
Console.WriteLine("==============================================");
HttpWebRequest request=null;
try
...{
request=(HttpWebRequest)WebRequest.Create(url);
request.Method="GET";
System.IAsyncResult request_result=request.BeginGetResponse(new System.AsyncCallback(EndScanURL),request);
}
catch(WebException we)...{PrintErrMsg(we.Message);}
catch(Exception e)...{PrintErrMsg(e.Message);}
finally
...{
request=null;
}
}
private void EndScanURL(System.IAsyncResult aResult)
...{
HttpWebRequest httpRequest=null;
HttpWebResponse httpResponse=null;
Stream xmlStream=null;
XmlTextReader XmlReader=null;
try
...{
httpRequest=(HttpWebRequest)aResult.AsyncState;
httpResponse=(HttpWebResponse)httpRequest.EndGetResponse(aResult);
xmlStream=httpResponse.GetResponseStream();
XmlReader=new XmlTextReader(xmlStream);
ParserXML(XmlReader);
}
catch(XmlException xmle)...{PrintErrMsg(xmle.Message);}
catch(Exception e)...{PrintErrMsg(e.Message);}
finally
...{
if(httpResponse!=null)
httpResponse.Close();
if(xmlStream!=null)
xmlStream.Close();
if(XmlReader!=null)
XmlReader.Close();
XmlReader=null;
httpRequest=null;
httpResponse=null;
xmlStream=null;
}
}
#endregion
============解析xml数据=======================//#region ============解析xml数据=======================//
/**//// <summary>
/// 解析xml数据
/// </summary>
/// <param name="stream"></param>
private void ParserXML(XmlTextReader reader)
...{
reader.WhitespaceHandling=WhitespaceHandling.None;
reader.MoveToContent();
if(reader.Name=="results"&&reader.HasAttributes)
ReaderXmlAttribute(reader);
reader.MoveToElement(); //返回包含当前属性的结点
System.Console.WriteLine("***********======"+reader.Name);
try
...{
reader.Read();
int count=0;
while(!reader.EOF&&reader.Name!="results")
...{
// if(reader.Name=="results")break;
System.Console.WriteLine("========================================"+reader.Name+(++count).ToString());
reader.ReadStartElement("result");
reader.ReadStartElement("ypinfoid");
System.Console.WriteLine("ypinfoid Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("title");
System.Console.WriteLine("title Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("phone");
System.Console.WriteLine("phone Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
reader.ReadStartElement("address");
System.Console.WriteLine("address Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
if(reader.Name=="coordinates")
...{
if(reader.HasAttributes)
...{
Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!===attribue==="+reader.GetAttribute(0));
}
reader.ReadStartElement("coordinates");
reader.ReadStartElement("latitude");
System.Console.WriteLine("latitude Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("longitude");
System.Console.WriteLine("longitude Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadEndElement();
}
if(reader.Name=="category")
...{
reader.ReadStartElement("category");
System.Console.WriteLine("latitude Text=="+reader.ReadString());
reader.ReadEndElement();
}
reader.ReadEndElement();
}
if(reader!=null)
...{
reader.Close();
System.Console.WriteLine("Reader Closed State=====****************************");
}
reader=null;
}
catch(Exception e)...{System.Console.WriteLine(e.Message);}
}
#endregion ===========================================//
//读取xml结点属性
private void ReaderXmlAttribute(XmlTextReader reader)
...{
#if true //Debug
System.Diagnostics.Debug.WriteLine("当前节点名字: "+reader.Name);
====Method 1===============//#region====Method 1===============//
while(reader.MoveToNextAttribute())
...{
Console.WriteLine("{0}={1}",reader.Name,reader.Value);
}
#endregion
====Method 2===============//#region====Method 2===============//
for(int i=0;i<reader.AttributeCount;i++)
...{
reader.MoveToAttribute(i);
Console.WriteLine("Name="+reader.Name+" :"+"value="+reader.Value);
}
#endregion
====Method 3===============//#region====Method 3===============//
for(int i=0;i<reader.AttributeCount;i++)
...{
Console.WriteLine("AttributeValue="+reader.GetAttribute(i));
}
#endregion
for(int j=0;j<reader.AttributeCount;j++)
...{
Console.WriteLine("attribute value= "+reader[j]);
}
#endif
}
private void RunThread()
...{
System.Threading.Monitor.Enter(this);
StartScanURL(TestURL);
System.Threading.Monitor.Exit(this);
}
private void PrintErrMsg(string messgage)
...{
// MessageBox.Show(messgage,"错误提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
MessageBox.Show(messgage);
#if Debug
System.Diagnostics.Debug.WriteLine(e.Message);
#endif
}
public ParserXml()
...{
XmlTextReader reader=new XmlTextReader("yellowpage.xml");
ParserXML(reader);
// RunThread();
// new Thread(new ThreadStart(RunThread)).Start();
}
public static void Main()
...{
new ParserXml();
/**//*
XmlTextReader reader=new XmlTextReader("TestXml.xml");
reader.WhitespaceHandling=WhitespaceHandling.None;
reader.MoveToContent();
try
{
reader.Read();
while(!reader.EOF)
{
if(reader.Name=="books")break;
System.Console.WriteLine("========================================"+reader.Name);
reader.ReadStartElement("book");
reader.ReadStartElement("title");
System.Console.WriteLine("Title Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("price");
System.Console.WriteLine("price Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("name");
System.Console.WriteLine("name Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
reader.ReadStartElement("adress");
System.Console.WriteLine("adress Text=="+reader.ReadString().Trim());
reader.ReadEndElement();
if(reader.Name=="namespace")
{
reader.ReadStartElement("namespace");
reader.ReadStartElement("position");
System.Console.WriteLine("position Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("kinds");
System.Console.WriteLine("kinds Text=="+reader.ReadString());
reader.ReadEndElement();
reader.ReadEndElement();
}
reader.ReadEndElement();
}
if(reader!=null)
{
reader.Close();
System.Console.WriteLine("****************************");
}
reader=null;
}
catch(Exception e){System.Console.WriteLine(e.Message);}
*/
}
}