Привет всем! Я наверное совсем тупой, но как мне получить через MSXML документ типа
<?xml ver ...> <!-- no problem -->
<xsl:something>
<something1/>
<something2/>
<xsl:something/>
и вдогонку про форматирование вывода XML файла — как применить этот самый XSL
<xsl:output indent="yes"\> программно...
Здравствуйте, youreeck, Вы писали:
Y>Привет всем! Я наверное совсем тупой, но как мне получить через MSXML документ типа
Y>Y><?xml ver ...> <!-- no problem -->
Y><xsl:something>
Y> <something1/>
Y> <something2/>
Y><xsl:something/>
Y>
См. доку.
Y>и вдогонку про форматирование вывода XML файла — как применить этот самый XSL <xsl:output indent="yes"\> программно...
Так только через XSLT. Не факт, что он тебе нужен.
... << RSDN@Home 1.1 beta 1 >>
Т.е. собственно (порывшись на форуме) захотелось увидеть код описанный тут
http://www.rsdn.ru/Forum/Message.aspx?mid=231916&only=1Автор:
Дата: 03.04.03
потому как я может что-то не то делаю, у меня не получилось...
Здравствуйте, youreeck, Вы писали:
Y>Привет всем! Я наверное совсем тупой, но как мне получить через MSXML документ типа
Y>Y><xsl:something>
Y> ...
Y><xsl:something/>
Y>
Вообще, оный документ не больно-то well-formed. Так что, как только ты его поправишь (сделаешь закрывающий тэг на самом деле закрывающим), он запросто загрузится в MSXML.DOMDocument.
Y>и вдогонку про форматирование вывода XML файла — как применить этот самый XSL <xsl:output indent="yes"\> программно...
Опять же, нужно начать с выбора правильных наклонов слэшей. Должно быть <xsl:output ... />.
По первому и второму вопросу тебе нужно почитать MSDN. У меня это лежит в platform sdk / xml web services / xml / xml products / msxml. Думаю, что и в MDSN online так же.
WBR,
XOR (xor/at/byte-force.com)
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, youreeck, Вы писали:
Y>и вдогонку про форматирование вывода XML файла — как применить этот самый XSL <xsl:output indent="yes"\> программно... :shuffle:
вот
утилитка с исходниками (VC7.1), которая форматирует заданный XML так — загружает его, сохраняет в файле XSL из своих ресурсов, загружает его тоже в MSXML документ, потом делается transformNode и полученный документ сохраняется на месте исходного.
Надо сказать, что такой метод работает практически на порядок быстрее, чем расставление переносов строки после каждого тега.
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, youreeck, Вы писали:
...
OE>вот утилитка с исходниками (VC7.1)
...
спасибо (в рейтинге булькнуло)... Ж8-)
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, youreeck, Вы писали:
Y>>и вдогонку про форматирование вывода XML файла — как применить этот самый XSL <xsl:output indent="yes"\> программно... :shuffle:
OE>вот утилитка с исходниками (VC7.1), которая форматирует заданный XML так — загружает его, сохраняет в файле XSL из своих ресурсов, загружает его тоже в MSXML документ, потом делается transformNode и полученный документ сохраняется на месте исходного.
OE>Надо сказать, что такой метод работает практически на порядок быстрее, чем расставление переносов строки после каждого тега.
А зачем такой большой xsl? Можно и проще:
MSXML2::IXMLDOMDocumentPtr doc, xsl;
xsl->loadXML(
"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version=\"1.0\">"
"<xsl:output indent=\"yes\" />"
"<xsl:template match=\"*|@*|text()|comment()|processing-instruction()\">\r\n"
"<xsl:copy>\r\n"
"<xsl:apply-templates select=\"*|@*|text()|comment()|processing-instruction()\"/>\r\n"
"</xsl:copy>\r\n"
"</xsl:template>"
"</xsl:stylesheet>"
);
_bstr_t result = doc->transformNode( xsl );
здесь главное сохранить некоторые \r\n в шаблоне.