Xml XSL-won';不能处理单个项目
我是XSLNoob,这一点很快就会清楚。我有一个报告,它在有多个节点时运行良好,但当XML包含单个节点时,它不会显示值。单节点是指报告中的一行中的一个条目。以下是一个例子:Xml XSL-won';不能处理单个项目,xml,xslt,Xml,Xslt,我是XSLNoob,这一点很快就会清楚。我有一个报告,它在有多个节点时运行良好,但当XML包含单个节点时,它不会显示值。单节点是指报告中的一行中的一个条目。以下是一个例子: <?xml version="1.0"?> <Objects> <Object> <Property Name="UserName">Will.Bean</Property> <Property Name="IP_Address">9
<?xml version="1.0"?>
<Objects>
<Object>
<Property Name="UserName">Will.Bean</Property>
<Property Name="IP_Address">99.99.99.99</Property>
<Property Name="FailureReason">%%2313</Property>
<Property Name="WorkstationName">OKC-CL6</Property>
<Property Name="SubStatus">Bad Password.</Property>
<Property Name="Status">Unknown user name or bad password.</Property>
<Property Name="DomainName">AcmeOrg</Property>
<Property Name="Date">5/27/2017 5:16:48 AM</Property>
</Object>
</Objects>
威尔,比恩
99.99.99.99
%%2313
OKC-CL6
密码不正确。
未知的用户名或错误的密码。
阿克梅奥格
2017年5月27日上午5:16:48
下面是我用来显示这个的XSL(为了简洁起见删除了一些样式),它可以很好地处理>1个条目。谢谢你的关注
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Objects/Object">
<html>
<head>
<script src="https://acme.com/sp/SiteAssets/jquery.js"></script>
<script src="https://acme.com/sp/SiteAssets/tablesorter/jquery.tablesorter.min.js"></script>
<style type="text/css">
table.sorttable {
font-family: verdana,arial,sans-serif;
}
</style>
<script type="text/javascript">
$(document).ready(defaultSorter);
function defaultSorter() {
$("#lockouts").tablesorter();
}
</script>
</head>
<body>
<table id="lockouts" class="sorttable">
<thead>
<tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
<th>Date</th>
<th>Domain</th>
<th>User</th>
<th>IP_Address</th>
<th>Status</th>
<th>SubStatus</th>
</tr>
</thead>
<tbody>
<xsl:apply-templates select="Property"/>
</tbody>
<tfoot>
<tr><td>Updated every 30 minutes</td></tr>
</tfoot>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="Property">
<tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
<td><xsl:value-of select="Property[@Name='Date']"/></td>
<td><xsl:value-of select="Property[@Name='Domain']"/></td>
<td><xsl:value-of select="Property[@Name='UserName']"/></td>
<td><xsl:value-of select="Property[@Name='IP_Address']"/></td>
<td><xsl:value-of select="Property[@Name='Status']"/></td>
<td><xsl:value-of select="Property[@Name='SubStatus']"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
表1.sorttable{
字体系列:verdana、arial、无衬线字体;
}
$(文件).ready(默认分拣机);
函数defaultSorter(){
$(“#锁定”).tablesorter();
}
日期
领域
使用者
IP地址
地位
亚状态
每30分钟更新一次
match=“Property”
和select=“Property[@Name='Date']”
无法处理您的输入,因为在模板内部,匹配的Property
元素是上下文节点,并且它没有您尝试选择的任何属性
子元素。您没有展示代码使用的示例,也没有解释XML中哪些元素要映射到HTML表行,哪些元素要映射到cells.hi Martin。问题似乎在于使用深度等于1的powershell ConvertTo XML方法编写XML的方式。在重新检查xml输出时,单个条目缺少封装属性标记。我会表现出来的。