Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > XML + XSL в одной строке


Автор: klein 16.12.2011, 18:42
Задача вивести XML с помощью XSLT с ограничением работы с документами. Работать с файлами запрещается, только со строками.

string XML
Код

<catalog>
<cd>
<title>
Empire Burlesque
</title>
<artist>
Bob Dylan
</artist>
<country>
USA
</country>
<company>
Columbia
</company>
<price>
10.90
</price>
<year>
1985
</year>
</cd>
</catalog>


string XSL
Код

<?xml version="1.0" encoding="ISO-8859-1"?>

 <xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/">
   <html>
   <body>
   <h2>My CD Collection</h2>
   <table border="1">
     <tr bgcolor="#9acd32">
       <th>Title</th>
       <th>Artist</th>
     </tr>
     <xsl:for-each select="catalog/cd">
     <tr>
       <td><xsl:value-of select="title"/></td>
       <td><xsl:value-of select="artist"/></td>
     </tr>
     </xsl:for-each>
   </table>
   </body>
   </html>
 </xsl:template>

 </xsl:stylesheet>



Пишу на C#, реализовал с помощью 
Код

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(@"xcl.xsl", settings, new XmlUrlResolver());
xslt.Transform("xml.xml", "html.html");

чисто обьектной или строчной реализации чтото не могу найти.

Буду раз за помощь в рамках фреймворка или же реализации XSL без указания href на документ в теге типа <?xml-stylesheet type='text/xsl' href='xsl.xsl'?>
Заранее благодарен.

Автор: diadiavova 16.12.2011, 23:03
Цитата(klein @  16.12.2011,  19:42 Найти цитируемый пост)
чисто обьектной или строчной реализации чтото не могу найти.

Плохо искал значит: у метода Transform указанного класса емнип порядка полутора десятков перегрузок, то есть найти можно практически на любой вкус. Только это вопрос вообще не по разделу, здесь обсуждаются форматы связанные с XML, а не XML  API различных языков и платформ программирования.
Вот список перегрузок метода
http://msdn.microsoft.com/ru-ru/library/system.xml.xsl.xslcompiledtransform.transform%28en-us,VS.80%29.aspx
Тебе подойдут многие, в том числе самый первый.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)