0

C# で HttpWebRequest を使用して、次の XML 文字列を取得しています。

私の応答 XML

<response>
    <accounts>
        <account>
            <city>Some City</city>
            <accountId>1234567</accountId>
            <companyName>My Company</companyName>
            <country>My Country</country>
            <email>myemail@yahoo.com</email>
            <enabled>1</enabled>
        </account>
        <account>
            <city>Some Other City</city>
            <accountId>0987654</accountId>
            <companyName>My Other Company</companyName>
            <country>My Country</country>
            <email>myotheremail@yahoo.com</email>
            <enabled>1</enabled>
        </account>
    </accounts>
    <total>2</total>
    <limit>20</limit>
    <offset>0</offset>
</response>

次のスキーマを使用して、XML をデータテーブルにエクスポートする必要があります。

accountId | companyName      | city            | country    | email                  | enabled
1234567   | My Company       | Some City       | My Country | myemail@yahoo.com      | 1
0987654   | My Other Company | Some Other City | My Country | myotheremail@yahoo.com | 1

これは XML を使用した初めての作業であり、その方法について混乱しています。私を助けてください。

4

1 に答える 1

1
// Forming a DataTable
dt = new DataTable("Accountdata"); // System.Data.DataTable
dt.Columns.Add("Account ID");
dt.Columns.Add("Company Name");
dt.Columns.Add("City");
dt.Columns.Add("Country");
dt.Columns.Add("Email");
dt.Columns.Add("Enabled");

// XML Part
string path = "accounts.xml";
XmlDocument XMLDoc = new XmlDocument(); // System.Xml.XmlDocument
XMLDoc.Load(path);
foreach (XmlNode AccData in XMLDoc.SelectNodes("/response/accounts/account"))
{
    if (AccData["accountId"] == null)
    {
        continue;
    }
    else
    {
        // Fill the DataTable line by line
        int AccountId = Convert.ToInt32(AccData["accountId"].InnerText);
        string CompanyName = AccData["companyName"].InnerText;
        string City = AccData["city"].InnerText;
        string Country = AccData["country"].InnerText;
        string Email = AccData["email"].InnerText;
        int Enabled = Convert.ToInt32(AccData["enabled"].InnerText);
        dt.Rows.Add(AccountId, CompanyName, City, Country, Email, Enabled);
    }
}               

あなたが望むものを正確に与えるべきです。これで構造が完成し、データをさらに処理したり、データベースに保存したりできます

注目の使用済みクラス:

于 2013-01-06T03:15:21.490 に答える