<?xml version="1.0"?>
<XmlPrintSalesMemoIn><TransInfo StartDateTime="20110713114812" Store="246" Till="4" TransId="2" UserId="100"/><SMPAttributes><Root><TicketStart TransId="2" Time="11:48:12" Till="4" SeqNo="0" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<Item Opcode="1" SKU="00000010000123" Subtract="0" Void="0" WasVoided="0" Negative="0" PriceOverride="0" ManualPrice="0" QtyIsWeight="0" QtyIsDecimal="0" NonMerchandise="0" StoreCoupon="0" VendorCoupon="0" ScannedItem="0" ReadFromPC="0" NextInfo="0" OfferDiscount="0" OfferContinue="0" OfferFirst="0" FSPayment="0" DepartmentNo="92" ReturnType="0" TaxPointer="1" Qty="1" Price="3775" Amount="3775" TransId="2" Time="11:48:12" Till="4" SeqNo="2" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<Description Opcode="1" Value="10000123" TransId="2" Time="11:48:20" Till="4" SeqNo="41" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<LineNumber Line="2" ExtraCode="" TransId="2" Time="11:48:12" Till="4" SeqNo="3" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<SalesPerson SalesPersonID="0" TransId="2" Time="11:48:12" Till="4" SeqNo="5" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<Description Opcode="96" Value="0" TransId="2" Time="11:48:20" Till="4" SeqNo="41" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<KeyTotal Amount="3775" TransId="2" Time="11:48:12" Till="4" SeqNo="8" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<SMPData><Attributes/></SMPData>
<Tender Opcode="4" TenderType="1" Change="0" Subtract="0" Cancel="0" WasCancelled="0" Return="0" MultiPartReceipt="0" ECCA="0" CouponSale="0" CashBack="0" Type="1" Amount="4000" ForeignAmount="0" ForeignRate="0" IssueDate="0000" CardAccount="00000000000000000000" ExpDate="0000" TransId="2" Time="11:48:15" Till="4" SeqNo="12" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<Description Opcode="4" Value="1" TransId="2" Time="11:48:20" Till="4" SeqNo="41" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<Tender Opcode="4" TenderType="1" Change="1" Subtract="0" Cancel="0" WasCancelled="0" Return="0" MultiPartReceipt="0" ECCA="0" CouponSale="0" CashBack="0" Type="1" Amount="-225" ForeignAmount="0" ForeignRate="0" IssueDate="0000" CardAccount="00000000000000000000" ExpDate="0000" TransId="2" Time="11:48:17" Till="4" SeqNo="19" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<Description Opcode="4" Value="1" TransId="2" Time="11:48:20" Till="4" SeqNo="41" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<Tax Opcode="6" taxnumber="1" TxnAmt="3775" TaxAmt="404" exempt="0" TaxIncl="1" TaxExemptNo="00000000000000000000" TransId="2" Time="11:48:17" Till="4" SeqNo="20" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<Description Opcode="6" Value="1" TransId="2" Time="11:48:20" Till="4" SeqNo="41" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
<TicketEnd TicketAmount="3775" TicketTotal="1" VoidTicket="0" SaveTicket="0" RecallTicket="0" ItemsNo="1" TransId="2" Time="11:48:19" Till="4" SeqNo="40" BusinessDay="4" RefundTicket="0" TrainingMode="0" CashierNumber="100"/>
</Root></SMPAttributes></XmlPrintSalesMemoIn>
这是给出的xml文档,请问该如何根据该文档创建相应的一些类,然后使用xml的内容填充使用类创建出来的对象,如果我们需要xml的值,我们可以在我们的对象中取值?

解决方案 »

  1.   

    /// <summary>
    ///XmlPrintSalesMemoIn 的摘要说明
    /// </summary>
    public class XmlPrintSalesMemoIn
    {
        public TransInfo ti { get; set; }
        public SMPAttributes sm { get; set; }
    }public class TransInfo
    {
        public string StartDateTime { get; set; }
        public string Store { get; set; }
        public int Till { get; set; }
        public int TransId { get; set; }
        public int UserId { get; set; }
    }public class SMPAttributes { 
        public Root r{get;set;}
    }
    public class Root { 
        //...
    }下面的 你懂的
      

  2.   

    要用 [XmlAttribute] 标识对应的属性。然后用 XmlSerializer 反序列化。
      

  3.   

    //读取用户的配置信息
                XmlSerializer ser = new XmlSerializer(typeof(UserID));
                if (File.Exists(SysParameter.ConfigFilePath + @"\" + strUserIDXml) == false)
                {
                    StreamWriter tw = new StreamWriter(SysParameter.ConfigFilePath + @"\" + strUserIDXml);
                    ser.Serialize(tw, new UserID());
                    tw.Close();
                }
                StreamReader rd = new StreamReader(SysParameter.ConfigFilePath + @"\" + strUserIDXml);
                _UserID = ser.Deserialize(rd) as UserID;
    我这里序列化为对象UserID,你就定义一个相应的类,将类标识为[Serializable]
      

  4.   

    按照你的提示,那接下来把xml数据填充到类的对象中要怎样做呢不会是这样吧            XmlPrintSalesMemoIn xpsmi = new XmlPrintSalesMemoIn();
                TransInfo TI = new TransInfo();
                TI.StartDateTime = "20110713114812";
                TI.Store = "246";
                TI.Till = 4;
                TI.TransId = 2;
                TI.UserId = 100;
                xpsmi.ti = TI;
      

  5.   

    用DataTable 或 XmlDocument都可以实现你的目标,LZ看看MSDN上面的介绍。
      

  6.   

    .net本身支持xml解析类,还有一种就是自己模型化xml文档,我要做的就是自己根据xml文档建立相应的类。
      

  7.   

    如果有xsd文件,可以通过xsd.exe自动生成符合xsd中架构的类