0 / 0 / 0
Регистрация: 01.05.2007
Сообщений: 57
1

Необходимо средствами С# получить в строковую переменную результат сведения xml- и xsl-файлов.

16.08.2008, 20:10. Показов 2519. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть xml-файл и соответствующий ему xsl-файл.
Необходимо средствами С# получить в строковую переменную
результат сведения xml- и xsl-файлов.
На VBScript этого можно добиться методом transformNode объекта MSXML.DOMDocument :

Visual Basic
1
sHTML = docXML.transformNode( docXSL )
Как того же добиться на C#?

Пробовал использовать объкт XslTransformation таким образом:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
XmlDocument doc = new XmlDocument(); 
 
string xmlFile = Server.MapPath( '1.xml' ); 
 
doc.Load( xmlFile); 
 
XslTransform xslt = new XslTransform(); 
 
string xslFile = Server.MapPath( '1.xsl' ); 
 
xslt.Load( xslFile ); 
 
DocumentNavigator nav = new DocumentNavigator(doc); 
 
XmlReader xmlReader = xslt.Transform( nav, null ); 
 
Response.Write( Server.HtmlEncode( xmlReader.ReadInnerXml() ); 
 
...
но неизменно получаю пустую строку.
Если же использую метод Transform с другой сигнатурой

а именно:

C#
1
2
3
4
5
public void Transform( 
XmlNavigator input, 
NSParamList args, 
TextWriter output 
);
то всё в порядке, но чтобы присвоить получающийся html-код строковой переменной приходится предварительно сохранить результат в файл, что совсем даже не нужно!

Что я не так делаю в первом случае?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2008, 20:10
Ответы с готовыми решениями:

Есть ли способ послать переменную в xsl-документ с помощью ASP, чтобы xsl выбрал и показал то что надо из xml?
Есть ли способ послать переменную в xsl-документ с помощью ASP, чтобы xsl выбрал и показал то что...

Ввести в строковую переменную запись вещественного числа с фиксированной точкой. Дописать в ту же строковую переменную знак =
Всем пользователям форума добрый вечер! Никак не могу правильно написать код,поэтому нужна ваша...

Как положить результат запроса в строковую переменную?
И снова здравствуйте! И снова глупые вопросы! Подскажите, как положить результат запроса в...

Необходимо скопировать все данные из книги Excel в строковую переменную
Есть одна проблема. Необходимо скопировать все данные из книги Excel в строковую переменную - в...

1
0 / 0 / 2
Регистрация: 29.01.2009
Сообщений: 4
01.02.2009, 20:20 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
using System.IO;
using System;
 
namespace Foo{ 
    class Bar
    {
        static void Main()
        {
 
                XmlDocument d = new XmlDocument(); 
                d.Load( 'example.xml'); 
                XslTransform t = new XslTransform(); 
                t.Load( 'example.xsl' ); 
                XPathNavigator v = d.DocumentElement.CreateNavigator();
                MemoryStream s = new MemoryStream();
                s.Flush(); t.Transform(v, null, s); 
                if (s.CanRead){
                try { 
                s.Seek(0, SeekOrigin.Begin);} catch( Exception e){Console.Write(e.ToString());}
                string z = ''; int i;
                for (i = 0; (i = s.ReadByte() )!= -1; i++){
                    z += (char )i;
                    }
                Console.WriteLine('{0}', z);
                }
 
        }
    }
}
0
01.02.2009, 20:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2009, 20:20
Помогаю со студенческими работами здесь

Как скрестить XML-документ из базы с имеющимся .xsl средствами XslTransform
Люди! Имеем следующее: в Oracle есть хранимая процедура, задача которой сформировать...

Получить ссылку на строковую переменную в другой функции
Добрый вечер! Помогите написать ссылку на переменную bin using System; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru