<?xml version="1.0" ?>
<!DOCTYPE ANS SYSTEM "LOCANS.DTD">
<ANS VER="0.01">
<LCSCLIENTID>TheClient</LCSCLIENTID>
<ORID>13308469176</ORID>
<LIA>
<POSINFOS>
<POSINFO>
<POSITIONRESULT>1</POSITIONRESULT>
<MSID>13308469176</MSID>
<MSID_TYPE>0</MSID_TYPE>
<AREACODE>25</AREACODE>
<LOCALTIME>20020420142020</LOCALTIME>
<LATITUDETYPE>0</LATITUDETYPE>
<LATITUDE>4540300</LATITUDE>
<LONGITUDETYPE>0</LONGITUDETYPE>
<LONGITUDE>12035700</LONGITUDE>
<RADUIS>200</RADUIS>
</POSINFO>
<POSINFO>
<POSITIONRESULT>1</POSITIONRESULT>
<MSID>13308469176</MSID>
<MSID_TYPE>0</MSID_TYPE>
<AREACODE>25</AREACODE>
<LOCALTIME>20020420142020</LOCALTIME>
<LATITUDETYPE>0</LATITUDETYPE>
<LATITUDE>4540300</LATITUDE>///需要取值
<LONGITUDETYPE>0</LONGITUDETYPE>
<LONGITUDE>12035700</LONGITUDE>>需要取值
<RADUIS>200</RADUIS>
</POSINFO>
</POSINFOS>
</LIA>
</ANS>请问怎么在xml中取得特定节点的值,比如上面所表示的值,特别是下面二个子节点<POSINFO>
没有区分标志
<!DOCTYPE ANS SYSTEM "LOCANS.DTD">
<ANS VER="0.01">
<LCSCLIENTID>TheClient</LCSCLIENTID>
<ORID>13308469176</ORID>
<LIA>
<POSINFOS>
<POSINFO>
<POSITIONRESULT>1</POSITIONRESULT>
<MSID>13308469176</MSID>
<MSID_TYPE>0</MSID_TYPE>
<AREACODE>25</AREACODE>
<LOCALTIME>20020420142020</LOCALTIME>
<LATITUDETYPE>0</LATITUDETYPE>
<LATITUDE>4540300</LATITUDE>
<LONGITUDETYPE>0</LONGITUDETYPE>
<LONGITUDE>12035700</LONGITUDE>
<RADUIS>200</RADUIS>
</POSINFO>
<POSINFO>
<POSITIONRESULT>1</POSITIONRESULT>
<MSID>13308469176</MSID>
<MSID_TYPE>0</MSID_TYPE>
<AREACODE>25</AREACODE>
<LOCALTIME>20020420142020</LOCALTIME>
<LATITUDETYPE>0</LATITUDETYPE>
<LATITUDE>4540300</LATITUDE>///需要取值
<LONGITUDETYPE>0</LONGITUDETYPE>
<LONGITUDE>12035700</LONGITUDE>>需要取值
<RADUIS>200</RADUIS>
</POSINFO>
</POSINFOS>
</LIA>
</ANS>请问怎么在xml中取得特定节点的值,比如上面所表示的值,特别是下面二个子节点<POSINFO>
没有区分标志
没有区分标志既然没有区分标志,那取哪个不一样吗?
doc.Load(@"../../test.xml");
XmlNodeList nodes = doc.SelectNodes(@"//POSINFO");
//比如说你已知道是第二个POSINFO
foreach (XmlNode node in nodes[1].ChildNodes)
{
if (node.Name == "LATITUDE" || node.Name == "LONGITUDE")
Console.WriteLine("NodeName: " + node.Name + "\tNodeValue: " + node.InnerText);
}输出:
NodeName: LATITUDE NodeValue: 4540300
NodeName: LONGITUDE NodeValue: 12035700
XmlDocument doc = new XmlDocument();
doc.Load("E:\\netProject\\testxml\\L1.xml");
XmlNodeList nodes = doc.SelectNodes(@"//POSINFO");
//比如说你已知道是第二个POSINFO
foreach (XmlNode node in nodes[1].ChildNodes)
{
if (node.Name == "LATITUDE" || node.Name == "LONGITUDE")
Console.WriteLine("NodeName: " + node.Name + "\tNodeValue: " + node.InnerText);
}why??
System.IO.__Error.WinIOError(Int32 errorCode, String str) +181
System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath, Boolean bFromProxy) +888
System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +45
System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials) +73
System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) +55
System.Xml.Schema.DtdParser.ParseDocTypeDecl()
System.Xml.Schema.DtdParser.Parse()
System.Xml.XmlTextReader.ParseDtd(XmlScanner scanner)
System.Xml.XmlTextReader.ParseTag() +1379
System.Xml.XmlTextReader.ParseRoot() +234
System.Xml.XmlTextReader.Read() +127
System.Xml.XmlValidatingReader.ReadWithCollectTextToken() +146
System.Xml.XmlValidatingReader.Read() +26
System.Xml.XmlLoader.LoadCurrentNode() +157
System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) +49
System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) +102
System.Xml.XmlDocument.Load(XmlReader reader) +72
System.Xml.XmlDocument.Load(String filename) +78
testxml.WebForm1.Button6_Click(Object sender, EventArgs e) in e:\netproject\testxml\webform1.aspx.cs:184
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
<!DOCTYPE ANS SYSTEM "LOCANS.DTD"> ////必须去掉这行才行,否则报错FileNotFoundException: 未能找到文件“E:\netProject\testxml\LOCANS.DTD”。]
<ANS VER="0.01">
<LCSCLIENTID>TheClient</LCSCLIENTID>
<ORID>13308469176</ORID>
<LIA>
<POSINFOS>
<POSINFO>
<POSITIONRESULT>1</ POSITIONRESULT>
<MSID>13308469176</MSID>
<MSID_TYPE>0</MSID_TYPE>
<AREACODE>25</AREACODE>
<LOCALTIME>20020420142020</LOCALTIME
<LATITUDETYPE>0</LATITUDETYPE>
<LATITUDE>4540300</LATITUDE>
<LONGITUDETYPE>0</ LONGITUDETYPE>
<LONGITUDE>12035700</LONGITUDE>
<RADUIS>200</RADUIS>
</POSINFO><POSINFO>
<POSITIONRESULT>1</ POSITIONRESULT >
<MSID>13308469176</MSID>
<MSID_TYPE>0</MSID_TYPE>
<AREACODE>25</AREACODE>
<LOCALTIME>20020420142020</LOCALTIME>
<LATITUDETYPE>0</LATITUDETYPE>
<LATITUDE>4540300</LATITUDE>
<LONGITUDETYPE>0</ LONGITUDETYPE>
<LONGITUDE>12035700</LONGITUDE>
<RADUIS>200</RADUIS>
</POSINFO>
<POSINFOS>
</LIA>
</ANS>