2016-04-01 19 views
0

このXML文字列がWebページに表示されますが、XMLからデータを取得して、Webページのラベルにどのように値を割り当てることができますか?C#のxml stringからデータを読み取る方法

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<things> 
    <bat>201400000586</bat> 
    <status>Y</status> 
    <totalAmount>3090</totalAmount> 
    <billno>P2355</billno> 
    <ReceiveDate>27/04/2015 06:22:18 PM</ReceiveDate> 
</things> 
+0

XMLを解析する必要があります。私はなぜあなたがこの質問にC#タグを付けたのか分かりません。しかし、C#でそれをやりたければ、XMLReaderを使うことができます。 –

+0

興味深いことに、これは「正確な重複」としてマークされています。 「複製」とこの回答の間には、同じ問題に対する5つの異なる解決策があります。そういうわけで、私は「これを行うにはさまざまな方法があります」という回答を始めました。 – smoore4

答えて

0

はまず

IEnumerable<XElement> childList = from Y in rootElm.Root.Elements() 
                select Y; 

今すぐリストの項目を缶ループをOUあなたがIEnumerableを取得することができたXMLDocument

XDocument doc = XDocument.Load(filePath); 
    XElement rootElm = doc.Element("things") 

今LINQを使用してを使用してXMLドキュメントを読み込む

ここ
foreach (XElement elm in childList) 
    { 
    //Here you can access elements this way 
    Console.log(elm.Element("status").Value); 
    .......... 
    } 

あなたも編集することができますxmlファイルの内容を保存して保存します。 これを行うにはさまざまな方法があります

doc.Save(filePath); 
0

ループ内でのXElement型の要素の値を割り当てます。ここに1つあります。

「using System.Xml.XPath;」を追加する必要があります。

 XPathDocument doc = new XPathDocument(Server.MapPath("~/XMLFile1.xml")); 

     XPathNavigator nav = doc.CreateNavigator(); 

     XPathExpression exp = nav.Compile(@"/things"); 

     foreach (XPathNavigator item in nav.Select(exp)) 
     { 

      label1.Text = item.SelectSingleNode("bat").ToString(); 
      label2.Text = item.SelectSingleNode("totalAmount").ToString(); 

     } 

または、文字列としてロードしてから、XmlElementまたはXmlNodeをこのような単純なXML構造で使用できます。

 XmlDocument m_xml = new XmlDocument(); 
     m_xml.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8"" standalone=""yes"" ?><things><bat>201400000586</bat><status>Y</status><totalAmount>3090</totalAmount><billno>P2355</billno><ReceiveDate>27/04/2015 06:22:18 PM</ReceiveDate></things>"); 

     XmlNode node_bat = m_xml.SelectSingleNode("//things/bat"); 
     XmlNode node_totalAmount = m_xml.SelectSingleNode("//things/totalAmount"); 

     XmlElement node_bat1 = m_xml.DocumentElement["bat"]; 
     XmlElement node_totalAmount1 = m_xml.DocumentElement["totalAmount"]; 

     label1.Text = node_bat1.InnerText; 
     label2.Text = node_totalAmount1.InnerText; 
+0

ここではXMLファイルからデータを読み込んでいますが、私の場合は他のページのXML文字列しか表示されません –

+0

コードが動作しています、ありがとうございます –

関連する問題