2014-09-24 2 views
0

Я читал, и я не мог найти хороший пример того, как это сделать. Файл я пытаюсь создать программно выглядит следующим образом:Создайте xml с атрибутами программно

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:template match="/"> 
<html> 
    <head> 
    <title> title here </title> 
    </head> 
    <body> 
    <xsl:apply-templates /> 
    </body> 
</html> 
</xsl:template> 
<xsl:template match="data"> 
<table width="400" border="1"> 
    <tr bgcolor="#a0acbc"> 
    <td></td> 
    <td></td> 
    </tr> 
    <xsl:for-each select="row"> 
    <tr> 
     <td> 
     <xsl:value-of select="" /> 
     </td> 
     <td> 
     <xsl:value-of select="" /> 
     </td> 
    </tr> 
    </xsl:for-each> 
</table> 
</xsl:template> 
</xsl:stylesheet> 

Я видел несколько примеров, но я не знаю, как сделать это выглядеть точно так, как это, с «таблицей стилей Xmlns: XLS =. ... "и с атрибутами на таблице и tr.

Может ли кто-нибудь помочь мне с этим или опубликовать мне хороший пример?

+2

вы смотрели на любом из 'XDocument',' XmlDocument' или 'XmlWriter'? –

ответ

2

Вы должны будете использовать пространства имен (то есть «XSL:». В названиях элементов)

Я не собираюсь делать все это для вас, но это должно помочь вам точку в правильном направлении: Вам нужно префикс имена элементов и атрибутов с пространствами имен, как так:

using System.IO; 
using System.Xml; 
using System.Xml.Linq; 

namespace XSLCreator 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     XNamespace xsl = XNamespace.Get("http://www.w3.org/1999/XSL/Transform"); 

     var doc = new XDocument(
      new XElement(xsl + "stylesheet", 
       new XAttribute(XNamespace.Xmlns + "xsl", xsl), 
       new XAttribute("version", "1.0") 
      ) 
     ); 

     var sw = new StreamWriter("test.xml"); 
     XmlWriter xw = new XmlTextWriter(sw); 
     doc.WriteTo(xw); 
     xw.Close(); 
     sw.Close(); 
     } 
    } 
} 

вы получите XML-документ, который выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" /> 
+0

Лично я хотел бы использовать XmlWriter.WriteStartElement, XmlWriter.WriteAttribute, XmlWriter.WriteEndElement и т. Д., А не создавать документ в памяти и затем сериализовать его. –

Смежные вопросы