xslt: 如何根据节点中某个值,选取特定的节点???

shoppo0505 2022-09-21 11:12:26

我有一个xml文件,大致结构如下:

<root>

    <info>

        <checkvalue>aaa</checkvalue>

        <name>name1</name>

        <value>value1</value>

    </info>

    <info>

        <checkvalue>bbb</checkvalue>

        <name>name2</name>

        <value>value2</value>

    </info>

</root>

我想解析成如下结构:

<root>

    <aaa>

        <name>name1</name>

        <value>value1</value>

    </aaa>

    <bbb>

        <name>name2</name>

        <value>value2</value>

    </bbb>

</root>

也就是说,需要根据节点checkvalue的值,选取指定的name,value的值,如果没有这个判断条件,两个节点中name和value的值都会被选取。

求大神指教

...全文
8046 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2022-09-22
  • 打赏
  • 举报
回复

问题解决,可以使用for-each 加 if的判断,像这样:
<xsl:for-each select="./">
<xsl:if test="./aaa='aaa'">
<xsl:value-of select="."/>

<xsl:if test="./bbb='bbb'">
<xsl:value-of select="."/>

但是还有个小问题就是,如果这个node没有,那么你希望解析出来的node也是没有的, 不知道这个时候如何加入一个空node

8,909

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧