Xml 在同级节点中的嵌套项之间移动的最佳方法?

Xml 在同级节点中的嵌套项之间移动的最佳方法?,xml,xslt,tei,Xml,Xslt,Tei,我有一个问题,我确信这个问题实际上很容易回答,但我想不出答案,我以前试图问这个问题时过于复杂了 我有一个从TEI XML生成的页面,该页面包含一些与图像文件关联的文本: <sourceDoc xml:id="textContent"> <surfaceGrp xml:id="wall" n="West Wall"> <surface xml:id="EETS.QD.60"> <label>Verse

我有一个问题,我确信这个问题实际上很容易回答,但我想不出答案,我以前试图问这个问题时过于复杂了

我有一个从TEI XML生成的页面,该页面包含一些与图像文件关联的文本:

<sourceDoc xml:id="textContent">
    <surfaceGrp xml:id="wall" n="West Wall">
        <surface xml:id="EETS.QD.60">
            <label>Verse 60</label>
            <graphic url="ww_test_1.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.63">
            <label>Verse 63</label>
            <graphic url="ww_test_2.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.65">
            <label>Verse 65</label>
            <graphic url="ww_test_3.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.66">
            <label>Verse 66</label>
            <graphic url="ww_test_4.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.68">
            <label>Verse 68</label>
            <graphic url="ww_test_5.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.69">
            <label>Verse 69</label>
            <graphic url="ww_test_6.jpg"/>
        </surface>
    </surfaceGrp>
</sourceDoc>
我的问题是,有时我需要从一个
包装的元素集跳到另一个。因此,例如,如果有一个“南墙”
,我需要能够抓取即将出现的元素的url,以便我可以跳转到下一块缩略图图像:

<sourceDoc xml:id="textContent">
    <surfaceGrp xml:id="wall" n="West Wall">
        <surface xml:id="EETS.QD.60">
            <label>Verse 60</label>
            <graphic url="ww_test_1.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.63">
            <label>Verse 63</label>
            <graphic url="ww_test_2.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.65">
            <label>Verse 65</label>
            <graphic url="ww_test_3.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.66">
            <label>Verse 66</label>
            <graphic url="ww_test_4.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.68">
            <label>Verse 68</label>
            <graphic url="ww_test_5.jpg"/>
        </surface>
        <surface xml:id="EETS.QD.69">
            <label>Verse 69</label>
            <graphic url="ww_test_6.jpg"/>
        </surface>
    </surfaceGrp>
    <surfaceGrp xml:id="wall" n="South Wall">
        <surface xml:id="EETS.QD.70">
            <label>Verse 70</label>
            <graphic url="sw_test_1.jpg"/>
        </surface>
    </surfaceGrp>
</sourceDoc>

第60节
第63节
第65节
第66节
第68节
第69节
第70节
使事情变得更复杂的是,有时所有东西都必须包装在另一个
元素中,因为它们是一个更大的块的一部分。可能是这样的:

<sourceDoc xml:id="textContent">
<surfaceGrp xml:id="g.8" n="gathering">
    <surfaceGrp xml:id="f.66" n="folio">
        <surface n="recto">
            <label>Verse 60</label>
            <graphic url="pageimage1.jpg"/>
        </surface>
        <surface n="verso">
            <label>Verse 63</label>
            <graphic url="pageimage2.jpg"/>
        </surface>
    </surfaceGrp>
    <surfaceGrp xml:id="f.67" n="folio>
        <surface n="recto">
            <label>Verse 65</label>
            <graphic url="pageimage3.jpg"/>
        </surface>
        <surface n="verso">
            <label>Verse 66</label>
            <graphic url="pageimage4.jpg"/>
        </surface>
    </surfaceGrp>
</surfaceGrp>
<surfaceGrp xml:id="g.9" n="gathering">
    <surfaceGrp xml:id="f.67" n="folio>
        <surface n="recto">
            <label>Verse 68</label>
            <graphic url="pageimage5.jpg"/>
        </surface>
        <surface n="verso">
            <label>Verse 69</label>
            <graphic url="pageimage6.jpg"/>
       </surface>
    </surfaceGrp>
</surfaceGrp>
</sourceDoc>

第60节
第63节
第68节
第69节
所以我的问题有两个:

  • 如何让xsl在第一个
    树中显示所有内容?我的当前代码将显示子对象的两个曲面
    ,但不是所有曲面
  • 在我上面的例子中,我将如何生成从第66节到第68节的链接,它与从第65节到第66节的链接有根本的不同吗?我可以使用一些复杂的代码跳转到下一个项目和下一个
    ,但这是一个令人难以置信的错误解决方案,一旦添加第二个
    层,它就会完全中断。如果有一个标准的解决方案,我希望你能朝着正确的方向点头
  • xsl当前使用我的代码生成的html代码如下:

    <div id="centerMenu">
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_1.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_1-thumbnail.jpg" alt="First Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_2.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_2-thumbnail.jpg" alt="Second Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_3.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_3-thumbnail.jpg" alt="Third Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_4.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_4-thumbnail.jpg" alt="Fourth Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_5.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_5-thumbnail.jpg" alt="Fifth Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_6.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_6-thumbnail.jpg" alt="Sixth Panel" />
        </a>
    </span>
    </div>
    
    <div id="rightMenu">
        <span class="menuitem" id="previousItem">
            <a class="nav_link">Previous</a>
        </span>
        <span class="menuitem" id="nextItem">
            <a class="nav_link" href="ww_test_2.html">Next</a>
        </span>
    </div>
    
    
    
    我知道您想从XML创建HTML。考虑在您的问题中张贴要为最后一个XML输入片段创建的HTML,目前尚不清楚在嵌套<代码> SureGrp元素时要创建的HTML。同样在上一个示例中,您有两次
    surfaceGrp xml:id=“wall”
    ,id应该是唯一的。当这些元素具有相同的id时,是否要将它们组合在一起?感谢您的关注。我添加了要生成的html。它适用于我当前拥有的代码(不适用于第二个surfaceGrp元素)。
    <div id="centerMenu">
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_1.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_1-thumbnail.jpg" alt="First Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_2.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_2-thumbnail.jpg" alt="Second Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_3.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_3-thumbnail.jpg" alt="Third Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_4.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_4-thumbnail.jpg" alt="Fourth Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_5.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_5-thumbnail.jpg" alt="Fifth Panel" />
        </a>
    </span>
    <span class="menuitem" id="image_thumbnail">
        <a class="nav_link" href="ww_test_6.html">
            <img class="thumbnail" src="../../Quis_Dabit/Clopton/Thumbnails/ww_test_6-thumbnail.jpg" alt="Sixth Panel" />
        </a>
    </span>
    </div>
    
    <div id="rightMenu">
        <span class="menuitem" id="previousItem">
            <a class="nav_link">Previous</a>
        </span>
        <span class="menuitem" id="nextItem">
            <a class="nav_link" href="ww_test_2.html">Next</a>
        </span>
    </div>