メッセンジャーのログを発言者毎にわける
メモリのこと全然考えてないなこれ。ログのサイズ小さければいいけど。
log.xml
<?xml version="1.0" encoding="utf-8"?> <!-- ?xml-stylesheet type='text/xsl' href='MessageLog.xsl'? --> <Log FirstSessionID="1" LastSessionID="1"> <!-- Example Sent Message --> <!-- <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="Local User"/></From> <To><User FriendlyName="Remote User"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">sent message body</Text> </Message> --> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="foo"/></From> <To><User FriendlyName="hoge"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">foo to hoge</Text> </Message> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="bar"/></From> <To><User FriendlyName="hoge"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">bar to hoge</Text> </Message> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="baz"/></From> <To><User FriendlyName="hoge"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">baz to hoge</Text> </Message> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="bar"/></From> <To><User FriendlyName="piyo"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">bar to piyo</Text> </Message> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="foo"/></From> <To><User FriendlyName="piyo"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">foo to piyo</Text> </Message> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="baz"/></From> <To><User FriendlyName="piyo"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">baz to piyo</Text> </Message> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="baz"/></From> <To><User FriendlyName="fuga"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">baz to fuga</Text> </Message> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="foo"/></From> <To><User FriendlyName="fuga"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">foo to fuga</Text> </Message> <Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1"> <From><User FriendlyName="bar"/></From> <To><User FriendlyName="fuga"/></To> <Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">bar to fuga</Text> </Message> <!-- Example Received Message --> <!-- <Message Date="23/09/2008" Time="10:29:05" DateTime="2008-09-23T09:29:05.412Z" SessionID="1"> <From><User FriendlyName="Remote User"/></From> <To><User FriendlyName="Local User"/></To> <Text Style="font-family:FONT_FAMILTY; color:#HEXCOLOR; ">received message body</Text> </Message> --> </Log>
log.wsf
<?xml version="1.0" encoding="utf-8"?> <job> <object id="$dom" progid="Microsoft.XMLDOM"/> <script language="JScript"><![CDATA[ (function() { $dom.load('log.xml'); for (var o = {}, i = 0, e = $dom.getElementsByTagName('From'), l = e.length; i < l; i++) { var c = e[i], n = c.getElementsByTagName('User')[0].getAttribute('FriendlyName'); if (!o[n]) o[n] = []; o[n].push(c.parentNode); } for (var p in o) { $dom.loadXML(['<', '>\n</', '>'].join('Messages')); var a = o[p], df = $dom.createDocumentFragment(); for (var i = 0, l = a.length; i < l; df.appendChild(a[i++])); $dom.documentElement.appendChild(df); $dom.save(p + '.txt'); } })(); ]]></script> </job>