我试图通过XSLT在html中显示xml数据。
我正在构建一个简单的html表,显示名称,地址和&电话号码。
XSL模板提取名称&电话号码,但由于某种原因,它不会获取地址。
<?xml-stylesheet type="text/xsl" href="testreport.xsl"?>
<BpsReportResponse>
<Individual>
<HistoricalNeighbors>
<Neighborhood>
<NeighborAddresses>
<NeighborAddress>
<Address>
<StreetName>SOMESTREET</StreetName>
<City>SOMECITY</City>
<County>SOMECOUNTY</County>
<State>NJ</State>
<StreetNumber>999</StreetNumber>
<Zip5>00000</Zip5>
<Zip4>0000</Zip4>
<StreetSuffix>ST</StreetSuffix>
</Address>
<DateLastSeen>
<Year>2008</Year>
</DateLastSeen>
<DateFirstSeen>
<Month>3</Month>
<Year>1996</Year>
</DateFirstSeen>
<Residents>
<Identity>
<Name>
<Last>DOE</Last>
<First>JANE</First>
</Name>
<UniqueId>00000000000</UniqueId>
</Identity>
</Residents>
<LocationId></LocationId>
<Phones>
<Phone>
<Phone10>9999999999</Phone10>
</Phone>
</Phones>
</NeighborAddress>
</NeighborAddresses>
</Neighborhood>
</HistoricalNeighbors>
</Individual>
</BpsReportResponse>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="BpsReportResponse/Individual">
<html>
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
</head>
<body>
<div id="neighbors">
<table>
<tr class="header"><td colspan="3">Neighbors</td></tr>
<tr class="subheader">
<td>Name</td>
<td>Address</td>
<td>Phone</td>
</tr>
<xsl:for-each select="HistoricalNeighbors/Neighborhood/NeighborAddresses/NeighborAddress">
<tr>
<td>
<xsl:value-of select="Residents/Identity/Name/First"/> <xsl:value-of select="Residents/Identity/Name/Middle"/> <xsl:value-of select="Residents/Identity/Name/Last"/>
</td>
<td>
<xsl-value-of select="Address/StreetNumber"/> <xsl-value-of select="Address/StreetName"/> <xsl-value-of select="Address/StreetSuffix"/>,
<xsl-value-of select="Address/City"/>, <xsl-value-of select="Address/State"/> <xsl-value-of select="Address/Zip5"/>
</td>
<td><xsl:value-of select="Phones/Phone/Phone10"/></td>
</tr>
</xsl:for-each>
</table>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:3)
您为地址元素执行了xsl-value-of而不是xsl:value-of。
从Sourceforge获取Xselerator,这是一个很棒的工具来做这样的事情。我复制并粘贴你的东西,我立即看到了错误。
答案 1 :(得分:0)
你会打砖块:
变化:
<xsl-value-of select="Address/StreetNumber"/>
代表
<xsl:value-of select="Address/StreetNumber"/>
答案 2 :(得分:0)
请注意,<xsl-value-of ...>
不是正式错误,它不是您想要的!它简单地被XSLT视为另一个输出元素,如果你查看输出,你会看到它和select
属性! XSLT假设你的意思是你输入的内容 - 如果因为输入错误而没有结果,那么XSLT不做任何评论 - 为什么要这样做。这意味着它大部分时间都会优雅地失败,但往往是默默无闻。
答案 3 :(得分:0)
visual studio也是xslt的一个很好的编辑器,它显示了所有错误,因此更容易找到错误。