2017-03-23 12 views
0

私はタグから属性値のみを抽出する必要があるXMLファイルを持っています。この構造のXML形式の外観タグの抽出値がXML文書を構成するC#

<customer> 
    <customerMiddleInitial>W</customerMiddleInitial> 
<name> 
     <FirstName>XXXXXXXX</FirstName> 
     <LastName> YYYYYYYY</LastName> 
</name> 
    <customerBirth>1983-01-01</customerBirth> 
    <customerWorkPhone>020 1234567</customerWorkPhone> 
    <customerMobilePhone>0799 1234567</customerMobilePhone> 
    <previousCust>0</previousCust> 
    <timeOnFile>10</timeOnFile> 
    <customerId>CUST123</customerId> 
</customer> 

タグ間のすべての詳細を抽出したいと思います。予想される出力は、すべての顧客の詳細でなければなりません。

これをC#でどのように実装できますか? 助けていただければ幸いです。

+0

を使用している:https://msdn.microsoft.com/fr-fr/library/cc189056(v=vs.95 ).aspx – DanielY

+0

http://stackoverflow.com/questions/364253/how-to-deserialize-xml-document私は上記のリンクであなたの答えを見つけると思います。 –

+0

これは、あなたが問題を抱えているコードを試してみるのを止めずに、単にこれまでの多くの古い「C#でXMLを解析する方法」のようなものです。 – har07

答えて

0
XmlDocument DOC = new XmlDocument(); 
DOC.Load("LoadYourXMLHere.xml"); 
XmlNodeList ParentNode = DOC.GetElementsByTagName("customer"); 
foreach (XmlNode AllNodes in ParentNode) 
{ 
if (ParentNode == DOC.GetElementsByTagName("customerMiddleInitial")) 
{ 
    customer.Initial = AllNodes["customerMiddleInitial"].InnerText; 
} 
if (ParentNode == DOC.GetElementsByTagName("name")) 
{ 
    customer.FirstName= AllNodes["FirstName"].InnerText; 
    customer.LastName= AllNodes["LastName"].InnerText; 
} 
if (ParentNode == DOC.GetElementsByTagName("customerBirth")) 
{ 
    customer.Birthdate= AllNodes["customerBirth"].InnerText; 
} 
if (ParentNode == DOC.GetElementsByTagName("customerWorkPhone")) 
{ 
    customer.WorkPhone= AllNodes["customerWorkPhone"].InnerText; 
} 
if (ParentNode == DOC.GetElementsByTagName("customerMobilePhone")) 
{ 
    customer.MobilePhone = AllNodes["customerMobilePhone"].InnerText; 
} 
if (ParentNode == DOC.GetElementsByTagName("previousCust")) 
{ 
    customer.PreviousCust= AllNodes["previousCust"].InnerText; 
} 
if (ParentNode == DOC.GetElementsByTagName("timeOnFile")) 
{ 
    customer.TimeOnFile= AllNodes["timeOnFile"].InnerText; 
} 
if (ParentNode == DOC.GetElementsByTagName("customerId")) 
{ 
    customer.ID= AllNodes["customerId"].InnerText; 
} 
} 

上記のxml解析をC#で実行します。敬具

ThiyaguあるRajendran

**そうでない場合、彼らは役立つとマーク解除場合の答えとして回答をマークしてください。

0

あなたはそれがちょうどあなたのデータを操作するためにモデルを使用した後にgeneratedモデルだけobject.Andに直列化復元XMLのこのコードを使用すると、このanswer

を確認する必要がまず第一。それは簡単でシンプルな

public static T FromXml<T>(String xml) 
    { 
     T returnedXmlClass = default(T); 

     try 
     { 
      using (TextReader reader = new StringReader(xml)) 
      { 
       try 
       { 
        returnedXmlClass = 
          (T)new XmlSerializer(typeof(T)).Deserialize(reader); 
       } 
       catch (InvalidOperationException) 
       { 
        // String passed is not XML, simply return defaultXmlClass 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
     } 

     return returnedXmlClass; 
    } 

とC#でXMLを解析する方法

var model = FromXml<customer>(yourXmlString); 
関連する問題