2009-11-14 44 views
0

我有一个XML和XSD我想添加一个记录trck与数据集表我还写了代码,但需要trackListrow ... 我该如何处理?添加一条记录到关系XML与C#

playListDS rec = new playListDS(); 
      if(File.Exists(Server.MapPath("~/playlist.xml"))) 
       rec.ReadXml(Server.MapPath("~/playlist.xml")); 


      int id = int.Parse(rec.track.Rows[rec.track.Rows.Count - 1][0].ToString()) + 1; 

      if (ViewState["Filename"] != null && ViewState["Cover"] != null) 
      { 
       playListDS.trackListRow row = new playListDS.trackListRow(); 
        rec.track.AddtrackRow(id.ToString(), "mp3/" + ViewState["Filename"].ToString(), txtartist.Text, 
        txtalbum.Text, txttitle.Text, 
        txtannotation.Text, txtduration.Text, "mp3/cover" + ViewState["Cover"].ToString(), 
        txtinfo.Text, txtlink.Text); 

<?xml version="1.0"?> 
<!-- Generated using Flame-Ware Solutions XML-2-XSD v2.0 at http://www.flame-ware.com/Products/XML-2-XSD/ --> 
<xs:schema id="playListDS" targetNamespace="http://tempuri.org/playListDS.xsd" xmlns:mstns="http://tempuri.org/playListDS.xsd" xmlns="http://tempuri.org/playListDS.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> 
    <xs:element name="playListDS" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> 
    <xs:complexType> 
     <xs:choice minOccurs="0" maxOccurs="1"> 
     <xs:element name="trackList"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="track" minOccurs="0" maxOccurs="unbounded"> 
       <xs:complexType> 
        <xs:sequence> 
        <xs:element name="FileID" type="xs:string" minOccurs="0" /> 
        <xs:element name="location" type="xs:string" minOccurs="0" /> 
        <xs:element name="creator" type="xs:string" minOccurs="0" /> 
        <xs:element name="album" type="xs:string" minOccurs="0" /> 
        <xs:element name="title" type="xs:string" minOccurs="0" /> 
        <xs:element name="annotation" type="xs:string" minOccurs="0" /> 
        <xs:element name="duration" type="xs:string" minOccurs="0" /> 
        <xs:element name="image" type="xs:string" minOccurs="0" /> 
        <xs:element name="info" type="xs:string" minOccurs="0" /> 
        <xs:element name="link" type="xs:string" minOccurs="0" /> 
        </xs:sequence> 
       </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:choice> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

<?xml version="1.0" standalone="yes"?> 
<playListDS xmlns="http://tempuri.org/playListDS.xsd"> 
    <trackList> 
    <track> 
     <FileID>6</FileID> 
     <location>mp3/Gomez - See The World-1.mp3</location> 
     <creator>Gomez</creator> 
     <album>How We Operate</album> 
     <title>See the World</title> 
     <annotation>Buraya kendi yorumun gelicek boş kalabilir</annotation> 
     <duration>243670</duration> 
     <image>mp3/coverChrysanthemum.jpg</image> 
     <info /> 
     <link>Grubun bi sitesi fln varsa buraya yazabilisin yoksa beni sil</link> 
    </track> 
    </trackList> 
</playListDS> 

回答

0

你的意思是这样的:

playListDS rec = new playListDS(); 
if(File.Exists(Server.MapPath("~/playlist.xml"))) 
{ 
    rec.ReadXml(Server.MapPath("~/playlist.xml")); 
} 

int id = int.Parse(rec.track.Rows[rec.track.Rows.Count - 1][0].ToString()) + 1; 

if (ViewState["Filename"] != null && ViewState["Cover"] != null) 
{ 
    playListDS.trackListRow row = rec.track.AddtrackRow(id.ToString(), "mp3/" + 
           ViewState["Filename"].ToString(), txtartist.Text, 
           txtalbum.Text, txttitle.Text, 
           txtannotation.Text, txtduration.Text, "mp3/cover" + 
           ViewState["Cover"].ToString(), 
           txtinfo.Text, txtlink.Text); 
} 

所有你需要的是新添加的行?如果是这样,你会从AddtrackRow方法中得到新的一行。

0

是的,但那样操纵xml。露珠MP3播放器无法看到两个trackList表...

 <trackList> 
    <track> 
     <FileID>6</FileID> 
     <location>mp3/Gomez - See The World-1.mp3</location> 
     <creator>Gomez</creator> 
     <album>How We Operate</album> 
     <title>See the World</title> 
     <annotation>Buraya kendi yorumun gelicek boş kalabilir</annotation> 
     <duration>243670</duration> 
     <image>mp3/coverChrysanthemum.jpg</image> 
     <info /> 
     <link>Grubun bi sitesi fln varsa buraya yazabilisin yoksa beni sil</link> 
    </track> 
    </trackList> 
    <trackList> 
    <track> 
     <FileID>8</FileID> 
     <location>mp3/Archives - Sleepdriving.mp3</location> 
     <creator>Grand Archives</creator> 
     <album>KEXP</album> 
     <title>Sleepdriving</title> 
     <annotation>Buraya kendi yorumun gelicek boş kalabilir</annotation> 
     <duration>323562</duration> 
     <image>mp3/coverDesert.jpg</image> 
     <info>PITCHFORK/FORKCAST 
http://pitchforkmedia.com</info> 
     <link>Grubun bi sitesi fln varsa buraya yazabilisin yoksa beni sil</link> 
    </track> 
    </trackList> 
+0

您可能想编辑原始帖子,而不是发布您的答案作为答案。如果我在常见问题解答中没有得到正确答案**,请参阅**。 http://stackoverflow.com/faq – TrueWill 2009-11-14 16:41:29

相关问题