Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsl для event log -> rss / 3 сообщений из 3, страница 1 из 1
17.07.2006, 17:59
    #33858887
blzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl для event log -> rss
кто то организовывал сабж?
хочу организовать конвертирование event log -> rss новость -> выкладывать на web-cервер, и с помощью rss-агрегатора, быть в курсе событий что творится на серверах.

на сайте ms скачал LogParser, который в том числе умеет конвертировать evt2xml используя xsl шаблон.
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&DisplayLang=en

но к сожалению, моих знаний в xml не хватает чтобы наклепать xsl для перегонки в rss-новость,

там был примерчик, на базе него сделал
Query.sql
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT 	top  20 
	TimeGenerated as Date,
	SourceName,
	Message,
             SID as sid
FROM System
TO rss.xml
WHERE EventTypeName='Error event'
ORDER by Date DESC

Table.xsl
Код: plaintext
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.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

 <xsl:template match="/">
  <xsl:for-each select="ROOT">
   <HTML>
    <HEAD><TITLE><xsl:value-of select="@CREATED_BY"/> Generated Log</TITLE></HEAD>
    <BODY>

     <CENTER><H1><xsl:value-of select="@CREATED_BY"/> Generated Log</H1></CENTER>
     <CENTER><H2>Generated on <xsl:value-of select="@DATE_CREATED"/></H2></CENTER>

     <CENTER>
      <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5">
       <xsl:apply-templates select="ROW"/>
      </TABLE>
     </CENTER>

    </BODY>
   </HTML>
  </xsl:for-each>
 </xsl:template> 

 <xsl:template match="ROW">
      <TR BGCOLOR="#F0F0F0">
	<xsl:for-each select="*">
	 <TD>
	  <xsl:value-of select="."/>
	 </TD>
	</xsl:for-each>
      </TR>
 </xsl:template> 
</xsl:stylesheet>
потом выполнить
Код: plaintext
LogParser file:Query.sql -xsllink:Table.xsl
и это дает мне файлик с html-табличкой со столбцами Date, SourceName, Message и т.д. и в полях таблицы соотв. значения.



хочется сделать для того чтобы получать такого типа xml-ку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0"?>
<rss version="2.0">

  <channel>
    <title>Error eventlog SERVER1</title>
    <link>http://что.ни.будть</link>
    <description>Error eventlog SERVER1</description>
    <language>en-us</language>
    <pubDate>дата генерации или максимальное значение поля Date </pubDate>

    <item>
      <title>значение поля SourceName</title>
      <link>неважно</link>
      <description>значение поля Message</description>
      <pubDate>значение поля Date</pubDate>
      <guid>значение поля sid</guid>
    </item>

  </channel>
</rss version="2.0">


ЗЫ. т.к. цель администирование винды, сперва создал трид в windows
...
Рейтинг: 0 / 0
28.07.2006, 08:50
    #33884038
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl для event log -> rss
В документации к Log Parser 2.2 нет ни слова о возможности выполнения XSL преобразования внутри этой программы. Поэтому придётся преобразовать полученный из Log Parser файл rss.xml к нужному виду посредством другой программы или скрипта.
...
Рейтинг: 0 / 0
16.08.2006, 04:03
    #33920299
Akrisiun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl для event log -> rss
Priviet vsiem, sorry for English.
Thanks blzz for rss log idea.

LogParser does not transform XLST files.
But you may use TPL tranformation way:

Query.tpl
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<LPHEADER><?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
  <channel>
    <title>Error eventlog %COMPUTERNAME%</title>
    <link>http://%COMPUTERNAME%</link>
    <description>Error eventlog %COMPUTERNAME%</description>
    <language>en-us</language>
    <pubDate>%SYSTEM_TIMESTAMP%</pubDate>
    <lastBuildDate>%SYSTEM_TIMESTAMP%</lastBuildDate>
</LPHEADER>
<LPBODY>	
    <item>
      <title>error from %SourceName%</title>
      <description>%Message%</description>
      <pubDate>%Date%</pubDate>
      <guid>%sid%</guid>
      <link>?event=%sid%</link>
    </item>
</LPBODY>
<LPFOOTER>
  </channel>
</rss>
</LPFOOTER>

Here's command batch is for rss.xml output
Код: plaintext
1.
LogParser file:Query.sql?EventLog=System -o:TPL -tpl:Query.tpl

If empty sid field, rss.xml will be unvalidated
fix Query.sql
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT TOP  20 
  TimeGenerated as Date, SourceName,
  Message, 
  RecordNumber AS sid    -- SID as sid
FROM System
TO rss.xml
WHERE EventTypeName = 'Error event'
ORDER by Date DESC

More info:
http://www.logparser.com/instantforum33/shwmessage.aspx?ForumID=1&MessageID=2153
"XSLT more flexible than TPL but its if you're guru in XML. For simple things use a simple tools"
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsl для event log -> rss / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]