有关xsl的问题,请各位大侠帮忙

leneq leneq 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下是我的xsl文件,主要目的是比较同一个xml文件里面不同节点的值
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:element name = "form1">
<xsl:for-each select="data/form1/field">
<xsl:variable name="Dname" select="@Dname" />
<xsl:variable name="DvalueType" select="@DvalueType"/>
<xsl:variable name="Dvalue" select="@Dvalue"/>
<xsl:variable name="ValName" select="../../row/*[name() = $Dname]" />
<xsl:choose>
<xsl:when test="$DvalueType = 1">
<xsl:choose>
<xsl:when test="($ValName - $Dvalue) != 0">
<xsl:element name="field">
<xsl:attribute name="Dname">
<xsl:value-of select="$Dname"/>
</xsl:attribute>
<xsl:attribute name="DvalueNew">
<xsl:value-of select="$Dvalue"/>
</xsl:attribute>
<xsl:attribute name="DvalueOld">
<xsl:value-of select="$ValName"/>
</xsl:attribute>
<xsl:attribute name="DvalueType">
<xsl:value-of select="$DvalueType"/>
</xsl:attribute>
</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$ValName != $Dvalue">
<xsl:element name="field">
<xsl:attribute name="Dname">
<xsl:value-of select="$Dname"/>
</xsl:attribute>
<xsl:attribute name="DvalueNew">
<xsl:value-of select="$Dvalue"/>
</xsl:attribute>
<xsl:attribute name="DvalueOld">
<xsl:value-of select="$ValName"/>
</xsl:attribute>
<xsl:attribute name="DvalueType">
<xsl:value-of select="$DvalueType"/>
</xsl:attribute>
</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
如下xml文件
<data>
<row>
<Var_qyname>b1</Var_qyname>
</row>
<form1>
<field Dname="Var_qyname" Dvalue="a1" DvalueType="0"/>
<field Dname="Var_name" Dvalue="a2" DvalueType="0"/>
<field Dname="Num_alltotal" Dvalue="0" DvalueType="1"/>
</form1>
</data>
我的目的是比较form1和row节点
通过以上xsl文件我可以知道Var_qyname 从b1 变到 a1
可是当比较Var_name和Num_alltotal时,因为此两项在row节点里没有,Var_name的改变值得不到,而Num_alltotal得到0。
我想可能是在row节点里没有对应节点造成的,在<xsl:variable name="ValName" select="../../row/*[name() = $Dname]" />的时候,取不到对应的值造成,但我不知道怎么判断这个值
...全文

相关推荐

Python 中的函数也是对象:内存分析详解

​​​在 Python 中,函数不仅仅是可调用的代码块,它们实际上是这意味着函数可以像其他对象一样被赋值、传递、存储和操作。了解函数的对象本质以及它们在内存中的行为,对于深入掌握 Python 编程至关重要。本文将详细分析函数作为对象的特性,并通过示例剖析其内存管理。

web安全工具库

深入剖析 Python 类属性与对象的底层创建与内存分析

类是 ​​type​​ 的实例。类的属性和方法存储在类的 ​​__dict__​​ 中。类对象在内存中是唯一的,所有实例共享同一个类对象。

web安全工具库

深入理解 Python 中的对象浅拷贝与深拷贝——内存分析详解

浅拷贝和深拷贝在 Python 中是处理复杂对象的基本工具。浅拷贝只拷贝对象的顶层结构,内部嵌套对象仍然是原对象的引用。深拷贝会递归地创建新对象,确保拷贝对象与原对象完全独立。使用 ​​id()​​ 函数可以帮助分析对象在内存中的地址,从而验证浅拷贝和深拷贝的行为。

web安全工具库

新型电力系统下PI-LSTM物理信息长短期记忆神经网络的电力变压器状态评估方法(Matlab代码实现)

内容概要:本文提出了一种基于物理信息长短期记忆神经网络(PI-LSTM)的电力变压器状态评估方法,旨在适应新型电力系统对设备状态精准评估的需求。该方法将物理规律作为先验知识融入LSTM网络,通过构建包含变压器热力学、电气特性等物理约束的损失函数,提升模型在数据稀疏或噪声干扰下的泛化能力与解释性。利用Matlab实现了PI-LSTM模型的搭建、训练与验证,通过实际案例对比传统LSTM与PI-LSTM在状态参数预测精度、趋势拟合度及异常检测敏感性方面的表现,证明了所提方法的有效性和优越性,为变压器等关键电力设备的智能运维提供了新的技术路径。; 适合人群:从事电力系统、智能电网、设备状态监测与故障诊断研究的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①应用于新型电力系统中电力变压器的健康状态评估与预测性维护;②为掌握物理信息神经网络(PINN)在电力系统中的融合应用提供Matlab实践范例; 阅读建议:建议读者结合Matlab代码深入理解PI-LSTM的网络结构设计、物理约束项的数学表达与代码实现细节,并尝试在不同工况数据集上复现和测试,以充分掌握其在提高模型物理一致性与预测可靠性方面的核心优势。

然哥爱编程

硕士复现燃料电池供氢系统建模及控制策略Simulink仿真(附带说明PPT+参考文献+复现模型+实物源码)

内容概要:本资源聚焦于燃料电池供氢系统的建模与控制策略研究,通过Simulink仿真平台实现系统动态行为的精确模拟与控制算法的验证。内容涵盖供氢系统的关键部件建模,如氢气供应管路、压力调节阀、储氢罐及燃料电池堆等,并针对系统响应滞后、压力波动等问题,设计并实现了先进的控制策略,例如基于反馈与前馈的复合控制、PID控制或模型预测控制(MPC),以确保氢气供给的稳定性与效率。配套提供的说明PPT详细阐述了建模思路与控制逻辑,参考文献为研究提供了理论支撑,而完整的复现模型与实物源码则极大地方便了学习者进行仿真复现与二次开发。; 适合人群:具备一定自动化、电气工程或能源动力系统背景,正在进行相关课题研究的研究生,以及从事氢能系统开发的工程技术人员。; 使用场景及目标:① 学习并掌握燃料电池供氢系统的工作原理与关键组件的数学建模方法;② 利用Simulink搭建复杂能源系统的仿真模型,并设计、调试与验证先进控制策略;③ 基于提供的完整资源包(PPT、模型、源码)进行科研复现,作为学位论文或学术研究的技术基础。; 阅读建议:学习者应结合说明PPT的理论讲解,逐步操作复现模型,重点关注控制模块的设计逻辑与参数整定过程。建议在理解现有模型的基础上,尝试修改工况参数或优化控制算法,以深化对系统动态特性的认识,从而将本资源作为开展自主创新研究的有效跳板。

小念念_
评论 3
收藏 已收藏
分享
返回顶部
leneq
XML/XSL 8,906 成员 22,677 内容