Xml 当根元素上有名称空间时,如何获取前面的同级值?
关于我先前的问题 当根元素上有名称空间时,如何获取前面的同级值? 我也有一些要求要遵循。根据需求,输出应该是这样的。我得到一个空白的活动名称Xml 当根元素上有名称空间时,如何获取前面的同级值?,xml,xslt,Xml,Xslt,关于我先前的问题 当根元素上有名称空间时,如何获取前面的同级值? 我也有一些要求要遵循。根据需求,输出应该是这样的。我得到一个空白的活动名称 // Description Level Activity Name Activity ID // =========== ============ ============= ====================================== // Main Entry Start Main Entry {
// Description Level Activity Name Activity ID
// =========== ============ ============= ======================================
// Main Entry Start Main Entry {00000000-0000-0000-0000-000000000000}
// Hello World! Information Main Entry {00000000-0000-0000-0000-000000000000}
// Test5 Verbose {3b081a36-43d5-4ecc-b381-628c33316205}
// alpha Start alpha {aa5a5b9c-4b24-43af-9f49-32656385e17d}
// Test7 Error alpha {aa5a5b9c-4b24-43af-9f49-32656385e17d}
// Test1 Information {d30741c2-da73-434a-8f0d-101f7ceb2228}
// Test11 Transfer Main Entry {00000000-0000-0000-0000-000000000000}
要求
- 第一条记录,此guid没有开始,因此活动名称将为空
- 第二条记录,它是一个起始级别,因此得到它自己的描述
- 第三条记录,guid有一个开始级别,因此get是该活动的名称
- 第四条记录,此guid没有开始,因此活动名称将为空
- 第五条记录,一个新的开始等级,有自己的描述
- 第6条记录,guid有一个开始级别,因此get是该活动的名称
- 第7条记录,guid有一个起始级别,因此get是该活动的名称
0
主入口
0
你好,世界!
0
测试5
0
阿尔法
0
测试7
0
测试1
0
测试11
XSL
描述
水平仪
活动名称
活动ID
在对源XML中的元素进行寻址时,这部分代码不使用所需的前缀-因此未选择任何内容:
<!-- ACTIVITY NAME -->
<td>
<xsl:value-of select="((. | preceding-sibling::E2ETraceEvent)[System/SubType/@Name='Start'])[last()]/ApplicationData"/>
</td>
它应该看起来更像这样:
<!-- ACTIVITY NAME -->
<td>
<xsl:value-of select="((. | preceding-sibling::te:E2ETraceEvent)[s:System/s:SubType/@Name='Start'])[last()]/te:ApplicationData"/>
</td>
我说可能吧,因为修复后收到的结果与您在文章开头显示的结果不匹配。但这是您在上一个问题中已经(或应该)解决的问题。Hi AJPErez,我试图添加完整的细节,但在stackoverflow上遇到了一些格式化问题。这就是我以前没有添加完整详细信息的原因。谢谢michael的回答,但我有一条规则,即如果活动ID不是{000-0000-000-0000},则活动名称将为空。示例6我的示例//测试1信息{d30741c2-da73-434a-8f0d-101f7ceb2228}中的记录。@Kash“但这是在上一个问题中已解决(或应该解决)的问题。”Michael,在上一个问题中,我仅在级别开始时显示活动名称。这个问题我基本上是正确的,除了一个条件,即当活动id不等于{00000000-0000-0000-0000-000000000000}并且级别不是start时,活动名称将为空。请告知。迈克尔,我需要按照规则过滤数据。我仍在寻找解决办法。请告知。
<!-- ACTIVITY NAME -->
<td>
<xsl:value-of select="((. | preceding-sibling::E2ETraceEvent)[System/SubType/@Name='Start'])[last()]/ApplicationData"/>
</td>
<!-- ACTIVITY NAME -->
<td>
<xsl:value-of select="((. | preceding-sibling::te:E2ETraceEvent)[s:System/s:SubType/@Name='Start'])[last()]/te:ApplicationData"/>
</td>