本文整理汇总了C++中XHTMLReader::normalizedReference方法的典型用法代码示例。如果您正苦于以下问题:C++ XHTMLReader::normalizedReference方法的具体用法?C++ XHTMLReader::normalizedReference怎么用?C++ XHTMLReader::normalizedReference使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XHTMLReader
的用法示例。
在下文中一共展示了XHTMLReader::normalizedReference方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateTOC
void OEBBookReader::generateTOC(const XHTMLReader &xhtmlReader) {
if (!myNCXTOCFileName.empty()) {
NCXReader ncxReader(myModelReader);
const ZLFile ncxFile(myFilePrefix + myNCXTOCFileName);
if (ncxReader.readDocument(ncxFile.inputStream(myEncryptionMap))) {
const std::map<int,NCXReader::NavPoint> navigationMap = ncxReader.navigationMap();
if (!navigationMap.empty()) {
std::size_t level = 0;
for (std::map<int,NCXReader::NavPoint>::const_iterator it = navigationMap.begin(); it != navigationMap.end(); ++it) {
const NCXReader::NavPoint &point = it->second;
int index = myModelReader.model().label(xhtmlReader.normalizedReference(point.ContentHRef)).ParagraphNumber;
while (level > point.Level) {
myModelReader.endContentsParagraph();
--level;
}
while (++level <= point.Level) {
myModelReader.beginContentsParagraph(-2);
myModelReader.addContentsData("...");
}
myModelReader.beginContentsParagraph(index);
myModelReader.addContentsData(point.Text);
}
while (level > 0) {
myModelReader.endContentsParagraph();
--level;
}
return;
}
}
}
std::vector<std::pair<std::string,std::string> > &toc = myTourTOC.empty() ? myGuideTOC : myTourTOC;
for (std::vector<std::pair<std::string,std::string> >::const_iterator it = toc.begin(); it != toc.end(); ++it) {
int index = myModelReader.model().label(it->second).ParagraphNumber;
if (index != -1) {
myModelReader.beginContentsParagraph(index);
myModelReader.addContentsData(it->first);
myModelReader.endContentsParagraph();
}
}
}
示例2: doAtStart
void XHTMLTagHyperlinkAction::doAtStart(XHTMLReader &reader, const char **xmlattributes) {
const char *href = reader.attributeValue(xmlattributes, "href");
if (href != 0 && href[0] != '\0') {
const FBTextKind hyperlinkType = MiscUtil::referenceType(href);
std::string link = MiscUtil::decodeHtmlURL(href);
if (hyperlinkType == INTERNAL_HYPERLINK) {
if (link[0] == '#') {
link = reader.myReferenceAlias + link;
} else {
link = reader.normalizedReference(reader.myReferenceDirName + link);
}
}
myHyperlinkStack.push(hyperlinkType);
bookReader(reader).addHyperlinkControl(hyperlinkType, link);
} else {
myHyperlinkStack.push(REGULAR);
}
const char *name = reader.attributeValue(xmlattributes, "name");
if (name != 0) {
bookReader(reader).addHyperlinkLabel(
reader.myReferenceAlias + "#" + MiscUtil::decodeHtmlURL(name)
);
}
}