我正在尝试编写一个 XSLT,它根据标题级别将 HTML 文件组织到不同的部分级别。这是我的输入:
<html>
<head>
<title></title>
</head>
<body>
<h1>HEADER 1 CONTENT</h1>
<p>Level 1 para</p>
<p>Level 1 para</p>
<p>Level 1 para</p>
<p>Level 1 para</p>
<h2>Header 2 CONTENT</h2>
<p>Level 2 para</p>
<p>Level 2 para</p>
<p>Level 2 para</p>
<p>Level 2 para</p>
</body>
</html>
我目前正在使用一个相当简单的结构,因此这种模式将暂时保持不变。我需要这样的输出...
<document>
<section level="1">
<header1>Header 1 CONTENT</header1>
<p>Level 1 para</p>
<p>Level 1 para</p>
<p>Level 1 para</p>
<p>Level 1 para</p>
<section level="2">
<header2>Header 2 CONTENT</header2>
<p>Level 2 para</p>
<p>Level 2 para</p>
<p>Level 2 para</p>
<p>Level 2 para</p>
</section>
</section>
</document>
我一直在处理这个例子:Stackoverflow Answer
但是,我无法让它完全满足我的需要。
我正在使用 Saxon 9 在 Oxygen 中运行 xslt for dev。我将在生产中使用 cmd/bat 文件。仍然是 Saxon 9。如果可能的话,我想处理最多 4 个嵌套的部分级别。
任何帮助深表感谢!
因为我遇到了另一个规定,所以我需要附加到这个上面。我之前可能应该想到这一点。
我遇到以下代码示例
<html>
<head>
<title></title>
</head>
<body>
<p>Level 1 para</p>
<p>Level 1 para</p>
<p>Level 1 para</p>
<p>Level 1 para</p>
<h1>Header 2 CONTENT</h1>
<p>Level 2 para</p>
<p>Level 2 para</p>
<p>Level 2 para</p>
<p>Level 2 para</p>
</body>
</html>
如您所见,在我的第一个片段中,它是 while<p>
的子级,始终是标头级别的子级。我想要的结果和上面一样,只是当我遇到的孩子时,它应该被包裹在.<body>
<p>
<p>
<body>
<section level="1">
<document>
<section level="1">
<p>Level 1 para</p>
<p>Level 1 para</p>
<p>Level 1 para</p>
<p>Level 1 para</p>
</section>
<section level="1">
<header1>Header 2 CONTENT</header1>
<p>Level 2 para</p>
<p>Level 2 para</p>
<p>Level 2 para</p>
<p>Level 2 para</p>
</section>
</document>