我正在尝试增强与 HelpNDoc 一起使用的 HTML 模板。我发现缺少的一件事是meta description
所有页面的标签都是相同的。
模板文件是 pascal 和 HTML 的混合体。目前这是模板中用于显示描述标签的数据:
<meta name="description" content="<% print(HndProjects.GetProjectSummary()); %>" />
我创建了一个包含所需描述的映射 XML 文档。例子:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<HelpTopics xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Topic>
<Caption>Overview</Caption>
<ID>msa-overview</ID>
<ContextID>0</ContextID>
<Description>An introduction to Meeting Schedule Assistant.</Description>
</Topic>
<Topic>
<Caption>Quick Start - Getting Started</Caption>
<ID>msa-quick-start</ID>
<ContextID>1</ContextID>
<Description>A quick start guide to get you up and running with Meeting Schedule Assistant.</Description>
</Topic>
<Topic>
<Caption>Using Meeting Schedule Assistant</Caption>
<ID>msa</ID>
<ContextID>2</ContextID>
<Description>An overview of the menus in Meeting Schedule Assistant.</Description>
</Topic>
</HelpTopics>
是否可以在此 HelpnDoc 脚本中使用 pascal 来读取 XML 文件?在他们的网站上,他们提供了有关的详细信息,HndProjects
并提到:
function GetProjectId: string;
返回当前打开的项目 ID。
所以我基本上想从 XML 数据文件中获取这个值:
HelpTopics/Topic/ID[text()='<% HndProjects.GetProjectId(); %>'
但我不知道如何将这样的 XPath 与 HelpNDoc Pascal 脚本一起使用。
更新
我尝试添加此代码以开始:
function GetDescription(sTopicID: string): String;
var
nodeTopic: TDOMNode;
doc: TXMLDocument;
begin
try
// Read in the xml file
ReadXMLFile(doc, '.\MSA-Help-Descriptions.xml');
// Get the node
//nodeTopic := doc.DocumentElement.FindNode(
// How do we get the node at: HelpTopics/Topic/ID[text()=sTopicID];
finally
doc.Free;
end;
GetDescription := 'xxxx';
end;
然后,在 HelpNDoc 中,我尝试编译脚本,但出现以下错误:
所以我不确定我是否可以做我想做的事,除非我错过了一些步骤。