XSL 分组和标签包装

时间:2021-02-15 14:19:34

标签: xslt xslt-2.0 xslt-grouping

需要一些有关 xsl 转换的帮助。 我得到了以下格式的 XML

    <p class="list">
        <a href="../link-1.mp4">First Vid </a>
     </p>
     <p class="indent">test</p>
     <notes><p>TEST ME NOTE</p></notes>
     <p class="list">
        <a href="../link-2.mp4">Second Vid </a>
     </p>

这需要转换成类似的东西

<ul>
        <li class="list">
           <p>
              <a href="../link-1.mp4">First Vid </a>
           </p>
           <p class="indent">test</p>
           <notes>
               <p>TEST ME NOTE</p>
           </notes>
        </li>
        <li class="list">
           <a href="../link-2.mp4">Second Vid </a>
        </li>
     </ul>

我所做的是

<xsl:template match="p">
    <li class="list">
        <p>
            <xsl:apply-templates/>
        </p>
    </li>
</xsl:template>

但是这为所有 p 元素创建了 li 并且我丢失了 notes 标签。 如何将类列表之间的这些节点包装到第一个 li?

1 个答案:

答案 0 :(得分:1)

您可以使用 group-starting-with,例如:

#!/bin/bash
 
javafile=*.java
 
for i in $javafile;
do
        if [[ "$i" == "$javafile" ]]
        then
                echo "No .java files"
        else
                git add $i
                echo
                echo "File $i added"
                echo
                echo "Write a message to commit"
                read message
                git commit -m "$message"
                git push origin master
                echo
                echo "#############################################"
                echo "$i pushed successfully"
                echo "#############################################"
        fi
done

在这里查看它的工作原理:https://xsltfiddle.liberty-development.net/aiyneL

相关问题