Xml 获取XSLT中的特定值
在使用XSLT将XML转换为XML的过程中,我试图从重复属性中获取特定值 假设我有以下XML:Xml 获取XSLT中的特定值,xml,xslt,xslt-1.0,xslt-2.0,Xml,Xslt,Xslt 1.0,Xslt 2.0,在使用XSLT将XML转换为XML的过程中,我试图从重复属性中获取特定值 假设我有以下XML: <SessionDetails> <SessionId>0</SessionId> <SessionTitle></SessionTitle> <HTMLUserActivity level="info"> [b]</HTMLUserActivity> <HTMLUserActivitylevel=
<SessionDetails>
<SessionId>0</SessionId>
<SessionTitle></SessionTitle>
<HTMLUserActivity level="info"> [b]</HTMLUserActivity>
<HTMLUserActivitylevel="info">The value that I take "AAA" </HTMLUserActivity>
<HTMLUserActivity level="info"> [b]</HTMLUserActivity>
<HTMLUserActivity level="info"> [br]</HTMLUserActivity>
<Message Index="2">
<Id>0x500A</Id>
<Type>Error</Type>
<Meaning>Group (0000) attribute not allowed as Additional attribute</Meaning>
</Message>
<HTMLUserActivity Level="Info">[CR][LF][font color="#000080"]</HTMLUserActivity>
<HTMLUserActivity Level="Info">[CR][LF][tr]</HTMLUserActivity>
<HTMLUserActivity Level="Info">[td align="center" valign="top" class="item" colspan="3"]</HTMLUserActivity>
<HTMLUserActivity Level="Info">[b]</HTMLUserActivity>
</Sessiondetails>
0
[乙]
我取“AAA”的值
[乙]
[br]
0x500A
错误
组(0000)属性不允许作为附加属性
[CR][LF][font color=“#000080”]
[CR][LF][tr]
[td align=“center”valign=“top”class=“item”colspan=“3”]
[乙]
我想从属性中获取特定值(AAA)
<HTMLUserActivitylevel="info">The value that I take "AAA" </HTMLuserActivity>
我取“AAA”的值
我只想获得AAA的输出,到目前为止,我尝试在XSLT下面创建,但无法获得值:
<xsl:for-each select="/SessionDetails/HTMLUserActivity">
<xsl:if test="contains(SessionDetails/HTMLUserActivity,'AAA')">
<xsl:variable name="testName" select = "//SessionDetails/HTMLUserActivity"/>
</xsl:if>
</xsl:for-each>
我假设我需要对每个和
if
语句使用,但是有没有更好的方法来获取值?如果您执行以下操作:
<xsl:for-each select="/SessionDetails/HTMLUserActivity[contains(., 'AAA')]">
<xsl:value-of select = "."/>
</xsl:for-each>
它将输出所有的
文本内容。我添加了一个谓词,它将根据您的条件仅获取相关的
您在原始帖子中创建的代码无法输出任何内容,因为:
更改您正在使用的上下文节点。因此,您的条件包含(SessionDetails/HTMLUserActivity,'AAA')
将永远不会为真,因为您在HTMLUserActivity中没有任何其他标记
您将结果放入一个变量中,该变量不能超出
的范围(除非您在for each中删除了一些代码)
我取的值“AAA”是文本,而不是属性。您想要检索什么?包含“AAA”的标签的全部内容?实际上我只想将AAA作为一个值,我想我应该将字符串拆分为“我所取的值”和“AAA”,所以您正在搜索“AAA”,并且您想要检索“AAA”??我想我不太清楚你的搜索条件。还有比这更复杂的吗?好吧,实际上这只是为了更多的练习,因为我对XSLT非常熟悉,并且想对XSLT中的每个和if语句进行更多的探索。我想我会改变这个问题,我需要的值仅来自包含“AAA”的标记。它不那么复杂吗?