以下是将IIS 6 / Windows Server 2003网站的配置保存到文件时所获得的代码片段:
<?xml version ="1.0"?>
<configuration xmlns="urn:microsoft-catalog:XML_Metabase_V64_0">
<MBProperty>
<IIsWebServer Location ="/LM/W3SVC/1"
AppPoolId="DefaultAppPool"
DefaultDoc="Default.htm,Default.asp,index.htm,iisstart.htm,Default.aspx"
ServerAutoStart="FALSE"
ServerBindings=":80:"
ServerComment="Default Web Site"
ServerSize="1"
>
</IIsWebServer>
<IIsWebServer Location ="/LM/W3SVC/1020944513"
AuthFlags="0"
LogPluginClsid="{FF160663-DE82-11CF-BC0A-00AA006111E0}"
ServerAutoStart="TRUE"
ServerBindings="161.230.8.183:80:"
ServerComment="staging.magazinefundraising.com"
>
</IIsWebServer>
<IIsWebServer Location ="/LM/W3SVC/103632312"
AuthFlags="0"
LogPluginClsid="{FF160663-DE82-11CF-BC0A-00AA006111E0}"
ServerAutoStart="TRUE"
ServerBindings="161.230.9.48:80:"
ServerComment="QSP2.Downtime"
>
</IIsWebServer>
</MBProperty>
</configuration>
如您所见,<IIsWebServer>
和<MBProperty>
元素之间有多个</MBProperty>
部分。
我想创建一个简单的xsl样式表,它输出一个多列(表格)结果,其中包含每个IIsWebServer实例的以下属性:
ServerComment
ServerBindings
AuthFlags
所以结果可能类似于:
ServerComment ServerBindings AuthFlags
------------- -------------- ---------
QSP2.Downtime 161.230.9.48:80: 0
依旧......
谢谢!
答案 0 :(得分:3)
XSL可能是这样的:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:mb="urn:microsoft-catalog:XML_Metabase_V64_0"
exclude-result-prefixes="msxsl">
<xsl:output method="text" indent="yes"/>
<xsl:template match="/">
ServerComment   ServerBindings   AuthFlags
<xsl:apply-templates />
</xsl:template>
<xsl:template match="mb:IIsWebServer">
<xsl:value-of select="./@ServerComment" />
<xsl:text> </xsl:text>
<xsl:value-of select="./@ServerBindings" />
<xsl:text> </xsl:text>
<xsl:value-of select="./@AuthFlags" />
</xsl:template>
</xsl:stylesheet>
当然,你会想要美化它:-)但它基本上有效。
这是否是正确的选择和最佳技术,完全取决于你:-)但它可以做到 - 没问题。
马克
答案 1 :(得分:-1)
正如Emil所说,XSL并非完全用于 text 格式化。但是,如果输出HTML,您应该能够实现目标。如下所示:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table>
<tr>
<th>ServerComment</th>
<th>ServerBindings</th>
<th>AuthFlags</th>
</tr>
<xsl:for-each select="/configuration/MBProperty/IIsWebServer">
<tr>
<td><xsl:value-of select="@ServerComment" /></td>
<td><xsl:value-of select="@ServerBindings" /></td>
<td><xsl:value-of select="@AuthFlags" /></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
如果您打算开发表格显示仅供查看,这可能是您最好的选择。但是,如果您打算以其他方式使用数据,那么最好采用Marc或Emil的方法。