繁体   English   中英

xml 到 html 使用 xslt 的转换不起作用

[英]xml to html conversion using xslt is not working

这是我的 Xml

<document>
  <metadata>
     <title>Sign in to my account</title>
  </metadata>
  <topic>
     <conceptuldocument>
         <legacybold> Hi hello world </legacybold>
      </conceptuldocument>
  </topic>

我只需要元数据数据标签下的标题

我只需要<h1> sign in to my account</h1>

但我将 html 作为

<h1>sign in to my account</h1>Hi hello world

这是我的 xslt:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <xsl:choose>
      <xsl:when  test="metadata">
        <xsl:apply-templates select="metadata"/>
      </xsl:when>
    </xsl:choose>
  </xsl:template>

  <xsl:template match="metadata">
    <h1>
      <xsl:value-of select="title"/>
    </h1>
  </xsl:template>
</xsl:stylesheet>

C#:

 using (StringWriter sw = new StringWriter())
            {
               
                transform.Transform(xmldocument.DocumentElement,null, sw);
                string html = sw.ToString();
            }

想知道是否有人可以帮助我指出我在这里缺少什么,这是 xslt 的新手,它刚刚过去了一天。

最简单的解决方法是将您的条目模板更改为

<xsl:template match="/">
    <xsl:apply-templates select="document/metadata"/>
</xsl:template>

请注意,围绕xsl:apply-templatesxsl:choose是一种空间浪费。 如果该元素不存在, xsl:apply-templates将不执行任何操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM