Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > XML, XSL > count(document(...)/test) |
Автор: StepS 9.3.2006, 12:57 | ||||
проблема в следующем: есть вызов в xslt:
так вот..... в результате получаем <count>0</count> styles.xml такого вида:
этот xml-ник лежит там же где и xslt, не могу понять почему не отрабатывает !"! Help please ![]() |
Автор: Beard 9.3.2006, 14:08 |
А каким процессором пользуешься? |
Автор: StepS 9.3.2006, 14:12 |
msxml, делаю преобразование спомощью .NET на C#. FrameWork 1.1 |
Автор: Beard 9.3.2006, 14:34 |
А через командную строку с msxml работает? (У меня с 4.0, например, все прекрасно работает) |
Автор: StepS 9.3.2006, 15:06 | ||
интересный прикол обнаружил: если делать трансформацию спом какой-нить проги, типа XmlSpy - работает, если делать трансформацию спомощью C# кода XslTransform.Transform() - то не работает. Кто знает в чем бок !!!? Метод трансформации следующий:
![]() |
Автор: Beard 9.3.2006, 15:15 |
Видать зависит от того, в какой директории работает прога - по другому резолвятся URI до файла. На Java из-за этого у некоторых и появляются проблемы при использовании функции document или при импорте/инклюде |
Автор: Beard 9.3.2006, 16:07 |
Попробуй использовать класс XmlResolver и делай Load, используя его |
Автор: StepS 10.3.2006, 13:41 |
у меня тоже появились проблемы при Include, это что глюк framework-а или "ошибка в моем ДНК" ? ![]() встречает инструкцию include и выкидывает exception. Кто как выходил из ситуации ?? Хелп плизз ![]() |
Автор: Beard 10.3.2006, 13:48 |
А что по поводу XmlResolver? Попробовал? У меня просто нет на этом PC VS, а то я бы сделал это сам |
Автор: StepS 10.3.2006, 15:08 |
вроде с include-ми получилось, теперь гемор пошел в другом: когда я сделал трансформашку я результат выкинул в Stream, потом пытаюсь сделать XmlDocument.Load(oStream) говорит что нет корневого елемента, хотя когда делаю сохранение в файл этого стрима то файл вполне валидный. З.Ы. Спасибо за XmlResolver |
Автор: Beard 10.3.2006, 15:11 |
Уверен, что валидный? Можно на начало посмотреть? |
Автор: StepS 10.3.2006, 15:34 | ||
|
Автор: Beard 10.3.2006, 15:42 |
Да, выглядит прилично! А если сохранить в файл (раз он там получается валидным), а потом сделать XmlDocument::Load(string filename) Будет ли такая же ошибка? Добавлено @ 15:44 И если будет, то можно ее полный текст увидеть? |
Автор: StepS 10.3.2006, 16:39 |
ошибки такой не будет, уже пробовал. Втом то весь и прикол ![]() ![]() через файл работает ! но я хочу без файла обойтись |
Автор: Beard 10.3.2006, 16:43 |
Тогда на текст первой ошибки не плохо было бы взглянуть Добавлено @ 16:53 Кстати, а ты Flush стриму делаешь? Добавлено @ 16:56 Вот, нашел - надо сделать stream.Position=0 |
Автор: StepS 10.3.2006, 17:07 |
заработало, спасибо ! Только зачем такой геммор нужно делать ? ![]() |
Автор: Beard 10.3.2006, 17:14 |
Для writer-ов flush (или Close) - чтобы они все свои буферы очистили в приемник. А про Position (может навру, я в основном джавист), могу предположить: когда читаются данные, то он смещается. Ну а вдруг мне захотелось в середину чего-нить запихнуть? Беру, смещаю Pointer, и радуюсь. Но при этом не стоит забывать его выставлять "на старт" (т.е. Position=0), если мы хотим извлечь из него все с самого начала |