Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSL-won';不能处理单个项目_Xml_Xslt - Fatal编程技术网

Xml XSL-won';不能处理单个项目

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

我是XSLNoob,这一点很快就会清楚。我有一个报告,它在有多个节点时运行良好,但当XML包含单个节点时,它不会显示值。单节点是指报告中的一行中的一个条目。以下是一个例子:

<?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输出时,单个条目缺少封装属性标记。我会表现出来的。