本文整理汇总了C++中HtmlElement::NameIsNS方法的典型用法代码示例。如果您正苦于以下问题:C++ HtmlElement::NameIsNS方法的具体用法?C++ HtmlElement::NameIsNS怎么用?C++ HtmlElement::NameIsNS使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HtmlElement
的用法示例。
在下文中一共展示了HtmlElement::NameIsNS方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
HtmlElement *HtmlParser::FindElementByNameNS(const char *name, const char *ns, HtmlElement *from)
{
HtmlElement *el = from ? from : rootElement;
if (from)
goto FindNext;
if (!el)
return NULL;
CheckNext:
if (el->NameIs(name) || ns && el->NameIsNS(name, ns))
return el;
FindNext:
if (el->down) {
el = el->down;
goto CheckNext;
}
if (el->next) {
el = el->next;
goto CheckNext;
}
// backup in the tree
HtmlElement *parent = el->up;
while (parent) {
if (parent->next) {
el = parent->next;
goto CheckNext;
}
parent = parent->up;
}
return NULL;
}
示例2: utassert
static void HtmlParser10()
{
HtmlParser p;
HtmlElement *root = p.Parse("<!xml version='1.0'?><x:a xmlns:x='http://example.org/ns/x'><x:b attr='val'/></x:a>");
utassert(2 == p.ElementsCount());
utassert(2 == p.TotalAttrCount());
utassert(root->NameIs("x:a") && root->NameIsNS("a", "http://example.org/ns/x"));
HtmlElement *node = p.FindElementByName("b");
utassert(!node);
node = p.FindElementByNameNS("b", "http://example.org/ns/x");
utassert(node);
utassert(node->NameIs("x:b") && node->NameIsNS("b", "http://example.org/ns/x"));
ScopedMem<WCHAR> val(node->GetAttribute("attr"));
utassert(str::Eq(val, L"val"));
// TODO: XML tags are case sensitive (HTML tags aren't)
node = p.FindElementByName("X:B");
utassert(node && node->NameIs("X:B"));
}