gpt4 book ai didi

c# - 如何使用 xsl 拆分 html 文件?

转载 作者:数据小太阳 更新时间:2023-10-29 02:46:19 25 4
gpt4 key购买 nike

我有一个将 xml 转换为 html 的 xsl 样式表。有时,对于大型 xml 文件,html 文件会变得非常大。我想修改样式表,如果 html file1 中的行数增加,那么我必须创建一个新的 html(比如 file2),并且必须将 file2 的链接放在 file1 中并显示。

我的xsl是,

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dimse="urn:schemas-dvtk:dimse" xmlns:activity="urn:schemas-dvtk:activity" xmlns:validation="urn:schemas-dvtk:validation" xmlns:media="urn:schemas-dvtk:media" xmlns:dul="urn:schemas-dvtk:dul" xmlns:results="urn:schemas-dvtk:results" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:template match="collection">
<html>
<head>
<style>
<xsl:text disable-output-escaping="yes">
&lt;!--
#foldheader{cursor:pointer;cursor:hand ; font-weight:bold ;
list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//--&gt;
</xsl:text>
</style>
<script src="script.js"/>
</head>
<body>
<font size="-2" face="helvetica">
<script src="script.js"/>
<ul>
<xsl:for-each select="Error">
<li id="foldheader">Error</li>
<ul id="foldinglist" style="display:none">
<xsl:variable name="cur" select="0" />
<xsl:for-each select="message">
<li id="foldheader">
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="results/id"/> * <xsl:value-of select="results/Resultfile"/> FOLDERLINK
</xsl:attribute>
<xsl:value-of select="@Name"/>
</xsl:element>
</li>
<ul id="foldinglist" style="display:none">


<xsl:for-each select="results">
<xsl:if test="position() &lt; 2">

<li>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="id"/> * <xsl:value-of select="Resultfile"/>
</xsl:attribute>
<xsl:value-of select="Resultfile"/>
</xsl:element>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:for-each>
</ul>
</xsl:for-each>
<xsl:for-each select="Warning">
<li id="foldheader">Warning</li>
<ul id="foldinglist" style="display:none">
<xsl:for-each select="message">
<li id="foldheader">
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="results/id"/> * <xsl:value-of select="results/Resultfile"/> FOLDERLINK
</xsl:attribute>
<xsl:value-of select="@Name"/>
</xsl:element>
</li>
<ul id="foldinglist" style="display:none">
<xsl:for-each select="results">
<li>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="id"/> * <xsl:value-of select="Resultfile"/>
</xsl:attribute>
<xsl:value-of select="Resultfile"/>
</xsl:element>

</li>
</xsl:for-each>
</ul>
</xsl:for-each>
</ul>
</xsl:for-each>
</ul>
</font>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

我的示例文档是,

<?xml version="1.0" encoding="utf-8"?>
<collection xmlns:dimse="urn:schemas-dvtk:dimse" xmlns:activity="urn:schemas-dvtk:activity" xmlns:validation="urn:schemas-dvtk:validation" xmlns:media="urn:schemas-dvtk:media" xmlns:dul="urn:schemas-dvtk:dul" xmlns:results="urn:schemas-dvtk:results" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Error>
<message Name="Type 2 attribute (0008,0090) should be present with at least a zero-length">
<results>
<id>58</id>
<Resultfile>\TesEnv\MediaRes\Summary_000_02167DCM_dcm_DCM_res.xml</Resultfile>
</results>
<results>
<id>36</id>
<Resultfile>\TesEnv\MediaRes\Summary_000_AA_dcm_DCM_res.xml</Resultfile>
</results>
</message>
</Error>Selected Dataset definition: "File Meta". Using AE Name "DICOM" - AE Version "3.0"51\TesEnv\MediaRes\Summary_000_02167DCM_dcm_DCM_res.xmlSelected Dataset definition: "Secondary Capture Image Storage SOP Class". Using AE Name "DICOM" - AE Version "3.0"52\TesEnv\MediaRes\Summary_000_02167DCM_dcm_DCM_res.xmlSelected Dataset definition: "File Meta". Using AE Name "DICOM" - AE Version "3.0"29\TesEnv\MediaRes\Summary_000_AA_dcm_DCM_res.xmlSelected Dataset definition: "Secondary Capture Image Storage SOP Class". Using AE Name "DICOM" - AE Version "3.0"30\TesEnv\MediaRes\Summary_000_AA_dcm_DCM_res.xml<Warning>
<message Name="Could not find Dataset definition for SOP UID: &quot;UNKNOWN&quot;, Dimse: C-STORE-RQ. Using Definitions with AE Name &quot;DICOM&quot; - AE Version &quot;3.0&quot;">
<results>
<id>76</id>
<Resultfile>\TesEnv\MediaRes\Summary_000_20110922192249_216_data_dcm_DCM_res.xml</Resultfile>
</results>
</message>
<message Name="File: &quot;\Datasets\20110922192249.216.data.dcm&quot; is not a valid DICOM Media Storage File. No &quot;DICM&quot; FMI Prefix at offset 128.">
<results>
<id>A1</id>
<Resultfile>\TesEnv\MediaRes\Summary_000_20110922192249_216_data_dcm_DCM_res.xml</Resultfile>
</results>
</message>
<message Name="The file &quot;\Datasets\20110922192249.216.data.dcm&quot; does not have (valid) File Meta Information">
<results>
<id>75</id>
<Resultfile>\TesEnv\MediaRes\Summary_000_20110922192249_216_data_dcm_DCM_res.xml</Resultfile>
</results>
</message>
</Warning>\TesEnv\TesEnv\media.pdvt.xml<Directory>\TesEnv</Directory><FileName>\TesEnv\media.pdvt.xml</FileName>
</collection>

请给出一些拆分 html 文件的想法..

最佳答案

看这里:http://msdn.microsoft.com/en-us/library/ms950784.aspx有关从 xsl 转换生成多个输出的信息。

顺便说一下,你的 xsl 样式表很难阅读......你应该使用额外的错误和警告模板而不是 xsl:for-each。

关于c# - 如何使用 xsl 拆分 html 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8292672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com