2017-02-15 111 views
0

我试图从我们的防火墙上的XML报告发布一些数据在网页上。由于XML中的数据将不断更新,所以我不能只发布静态数据。XML到XSL我该怎么做错了

现在我花了一些时间来研究XML和网页,但我无法弄清楚我做错了什么。

的XML代码的一部分:

<?xml version="1.0"?> 
<?xml-stylesheet href="test.xsl" 
    type="text/css"?> 
<report reportname="top-application-categories"> 
    <result name="Top application categories" logtype="appstat" start="2017/02/08 00:00:00" start-epoch="1486508400" delta="86400" slabbed-  start="2017/02/08 00:00:00" end="2017/02/08 23:59:59" end-epoch="1486594799" slabbed-end="2017/02/08 23:59:59" generated-at="2017/02/09 00:00:16" generated-at-epoch="1486594816" range="Wednesday, February 08, 2017"> 
<entry> 
    <category-of-name>general-internet</category-of-name> 
    <nsess>14765605</nsess> 
    <nbytes>81973979657</nbytes> 
</entry> 
<entry> 
    <category-of-name>business-systems</category-of-name> 
    <nsess>8449911</nsess> 
    <nbytes>2747818255111</nbytes> 
</entry> 
<entry> 
    <category-of-name>networking</category-of-name> 
    <nsess>7673706</nsess> 
    <nbytes>172508825988</nbytes> 
</entry> 

现在我试图创建一个XSL这使得确保只有类别-的名称的,玛丽大口非鲫和参数nBytes显示在页面上。

<?xml version="1.0"?> 
<xsl:stylesheet 
version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
> 
<xsl:strip-space elements="*"/> 
<xsl:output method="xml" 
    omit-xml-declaration="yes" 
    indent="yes" 
    standalone="yes" /> 

<xsl:template match="/"> 
    <xsl:for-each select="report"> 
    <xsl:element name="report"> 
    <xsl:for-each select="result"> 
    <xsl:element name="result"> 
     <xsl:for-each select="entry"> 
      <xsl:element name="entry"> 
       <xsl:attribute name="category-of-name"> 
       <xsl:value-of select="category-of-name"/> 
       </xsl:attribute> 
       <xsl:attribute name="nsess"> 
       <xsl:value-of select="nsess"/> 
       </xsl:attribute> 
       <xsl:attribute name="nbytes"> 
       <xsl:value-of select="nbytes"/> 
       </xsl:attribute> 
      </xsl:element> 
      </xsl:for-each> 
     </xsl:for-each> 
    </xsl:element> 
    </xsl:for-each> 

我发现在MSDN上的WWW这个例子。它解释了如何使用XML并在Visual Web开发人员创建的网页上显示数据。 仍然试图找到一样的结果,或者是一个错误,或者它根本不显示任何内容。

希望有人能指导我在正确的方向:)

+1

尝试了这一点首先希望使用调试器氧XML编辑器XML编辑器。然后,如果您获得结果,请将其附加到网页上。这样你就可以确定xsl正在工作。 – user726720

回答

0

看行5.在你的结果NAME =“顶级应用类别”标签有一个的unsetted slabbed-属性。

它会导致您的XML格式不正确。您可以使用http://codebeautify.org/xmlvalidator来检查它是否正常并在线生效。

我希望它可以帮助你;)

+0

你的意思是<结果?它没有被关闭?因为它是我刚刚粘贴的报告的顶部:) – Erik

+0

不,在打开的结果标记里面有这个:start-epoch =“1486508400”delta =“86400”slabbed- start =“2017/02/08 00:00 :00“end =”2017/02/08 23:59:59“。在启动时间和启动属性之间,您已经设置了slabbed - 没有设置。无论如何,如果你尝试检查在线验证器,它会给你线条和所有的表单错误。 – Antonio682