2

我创建了一个 HTML 页面,该页面在 div 周围有一个包裹的 div。但是,当我使用相同的 HTML 通过 XSLT 处理一些 XML 时,它会将一个 div 置于另一个之上,任何人都可以想到它为什么在 XML/XSLT 中这样做?

    <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
               version="1.0"
               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
               xmlns:xhtml="http://www.w3.org/1999/xhtml"
>


  <!-- Doctype - about:legacy-compat is XML equivalent of HTML5 doctype -->
  <xsl:output method="html" indent="yes"
              omit-xml-declaration="yes"
              doctype-public="about:legacy-compat"
  />

  <xsl:template name="Document" match="/">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>BPD</title>
<link type="text/css" rel="stylesheet" href="big_picture_documentation_v3.css"/>
</head>
<body>
<div id="container">
 <div id="floated">
 <p>WRAP AROUND ME!</p>
</div>
<xsl:apply-templates/>
</div>
</body>
</html>
</xsl:template>

<xsl:template name="Title" match="title">
  <h1>
    <xsl:apply-templates/>
  </h1>
</xsl:template>
<xsl:template name="subheading" match="subheading">
  <h2>
    <xsl:apply-templates/>
  </h2>
</xsl:template>

</xsl:stylesheet>

用于格式化这些 div 的 CSS 如下所示:

#container { margin: 5px;padding: 5px;border: 0px solid black;}
#floated { width: 227x;float: left;padding-right: 5px;padding-bottom: 10px;}

示例 XML:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="v3.xsl" ?>
 <document xmlns:xhtml="http://www.w3.org/1999/xhtml">
   <data id="HowToUse" type="example" status="Complete">
   <content>
   <title>How To Navigate This Guide</title>
   <subheading>Using This Documentation</subheading>

    </content>
   </data>

</document>
4

1 回答 1

1
<div id="container">
 <div id="floated">
 <p>WRAP AROUND ME!</p>
</div>
<xsl:apply-templates/>
</div>

在我看来,你想要的是:

<div id="container">
 <div id="floated">
  <p>WRAP AROUND ME!</p>
  <xsl:apply-templates/>
</div>
</div>
于 2012-04-23T12:19:28.010 回答