生成基于XML的Html代码

时间:2013-04-27 10:02:15

标签: c# html xml

我想生成一个带有XML文件的Html代码。 这是我的xml:

 <XML>
 <Groups>
<Group Name="Group1">
    <Item ID="9A4FA56F-EAA0-49AF-B7F0-8CA09EA39167"/>
    <Item ID="351FEF76-B826-426F-88C4-DBAAA60F886B"/>
    <Item ID="96A4CBFC-04CD-4D27-ADE6-585C05E4DBC9"/>
    <Item ID="D8876943-5861-4D62-9249-C5FEF88219FA"/>
</Group>
<Group Name="Group2">
    <Item ID="9A4FA56F-EAA0-49AF-B7F0-8CA09EA39167"/>
    <Item ID="351FEF76-B826-426F-88C4-DBAAA60F886B"/>
</Group>
 </Groups>
 <Items>
<Item>
    <GUID>9A4FA56F-EAA0-49AF-B7F0-8CA09EA39167</GUID>
    <Type>button</Type>
    <Title>Save</Title>
    <Value>submit</Value>
    <Name>btnsave</Name>
    <MaxLen>5</MaxLen>
</Item>    
<Item>
    <GUID>351FEF76-B826-426F-88C4-DBAAA60F886B</GUID>
    <Type>text</Type>
    <Title>Name:</Title>
    <Name>txtname</Name>
    <Value>Name</Value>
    <MaxLen>2</MaxLen>
</Item>    
<Item>
    <GUID>02973DCC-5677-417C-A9BF-1578F58923EF</GUID>
    <Type>text</Type>
    <Title>Family:</Title>
    <Name>txtFamiy</Name>
    <Value>Family</Value>
    <MaxLen>2</MaxLen>
</Item> 
<Item>
    <GUID>96A4CBFC-04CD-4D27-ADE6-585C05E4DBC9</GUID>
    <Type>checkbox</Type>
    <Title>I agree to the terms.</Title>
    <Name>chkagree</Name>
    <Value>Agree</Value>
    <MaxLen>10</MaxLen>
</Item>    
    <Item>
    <GUID>D8876943-5861-4D62-9249-C5FEF88219FA</GUID>
    <Type>select</Type>
    <Title>Type of property</Title>
    <Name>PropertyType</Name>
    <Value></Value>     
</Item>    

我遇到的问题是我需要为每个组创建一个fieldset标记,相关元素必须在该fieldset中。

这是我的C#代码:

XmlTextReader reader = new XmlTextReader(xmlfileaddress);
      Group objGroup = new Group();
      while (reader.Read())
      {
        switch (reader.Name)
        {
           case "Groups":
           while (reader.Read())
        {
          if (reader.NodeType == XmlNodeType.EndElement)
          break;
          switch (reader.Name)
          {
            case "Group":
            if (reader.IsStartElement())
            {

            }
          while (reader.Read())
          {

            if (reader.NodeType == XmlNodeType.EndElement)
            break;
            switch (reader.Name)
            {
                case "Item":
                objGroup.ItemIDs.Add(new Guid());
                break;
            }
            }
                break;
            }
            }
                 break;

           case "Items":                        
           Item objItem = new Item();
           while (reader.Read())
           {
            if (reader.NodeType == XmlNodeType.EndElement)
            break;
           switch (reader.Name)
           {
             case "Item":
             while (reader.Read())
             {

               if (reader.NodeType == XmlNodeType.EndElement)
               break;
               switch (reader.Name)
               {
                 case "GUID":                                                    
                 objItem.Id = reader.ReadElementContentAsString();
                 break;

                 case "Title":
                 objItem.Title = reader.ReadElementContentAsString();
                 break;

                 case "Type":
                 objItem.Type = reader.ReadElementContentAsString();
                 break;

                 case "Value":
                 objItem.Value = reader.ReadElementContentAsString();
                 break;

                 case "Name":
                 objItem.Name = reader.ReadElementContentAsString();
                 break;

                 case "MaxLen":
                 objItem.MaxLen = reader.ReadElementContentAsString();
                 break;

               }

               }

1 个答案:

答案 0 :(得分:1)

你认为XSLT?

XSLT是一种基于XML的语言,用于从XML数据生成另一个基于GML的文件,如HTML。

有关详细信息,请参阅:How to apply an XSLT Stylesheet in C#

可以在此处找到XSLT(和在线转换器)的示例:http://www.w3schools.com/xsl/xsl_examples.asp 您可以使用XML和XSLT在该站点上进行游戏,然后在代码中使用第一个链接中的代码实现它。

相关问题