本文整理汇总了C++中dom::Node::isNull方法的典型用法代码示例。如果您正苦于以下问题:C++ Node::isNull方法的具体用法?C++ Node::isNull怎么用?C++ Node::isNull使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dom::Node
的用法示例。
在下文中一共展示了Node::isNull方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: completed
void KHTMLReader::completed()
{
kDebug(30503) << "KHTMLReader::completed";
qApp->exit_loop();
DOM::Document doc = _html->document(); // FIXME parse <HEAD> too
DOM::NodeList list = doc.getElementsByTagName("body");
DOM::Node docbody = list.item(0);
if (docbody.isNull()) {
kWarning(30503) << "no <BODY>, giving up";
_it_worked = false;
return;
}
parseNode(docbody);
list = doc.getElementsByTagName("head");
DOM::Node dochead = list.item(0);
if (!dochead.isNull())
parse_head(dochead);
else
kWarning(30503) << "WARNING: no html <HEAD> section";
_writer->cleanUpParagraph(state()->paragraph);
_it_worked = _writer->writeDoc();
}
示例2: clear_node
static void clear_node(DOM::Node n) {
if(!n.isNull())
while(1) {
DOM::Node f = n.firstChild();
if(f.isNull())
break;
n.removeChild(f);
}
}
示例3: showRecursive
void DOMTreeView::showRecursive(const DOM::Node &pNode, const DOM::Node &node, uint depth)
{
DOMListViewItem *cur_item;
DOMListViewItem *parent_item = m_itemdict.value(pNode.handle(), 0);
if (depth > m_maxDepth) {
m_maxDepth = depth;
}
if (depth == 0) {
cur_item = new DOMListViewItem(node, m_listView);
m_document = pNode.ownerDocument();
} else {
cur_item = new DOMListViewItem(node, parent_item);
}
//kDebug(90180) << node.nodeName().string() << " [" << depth << "]";
cur_item = addElement (node, cur_item, false);
m_listView->setItemExpanded(cur_item, depth < m_expansionDepth);
if(node.handle()) {
m_itemdict.insert(node.handle(), cur_item);
}
DOM::Node child = node.firstChild();
if (child.isNull()) {
DOM::HTMLFrameElement frame = node;
if (!frame.isNull()) {
child = frame.contentDocument().documentElement();
} else {
DOM::HTMLIFrameElement iframe = node;
if (!iframe.isNull())
child = iframe.contentDocument().documentElement();
}
}
while(!child.isNull()) {
showRecursive(node, child, depth + 1);
child = child.nextSibling();
}
const DOM::Element element = node;
if (!m_bPure) {
if (!element.isNull() && !element.firstChild().isNull()) {
if(depth == 0) {
cur_item = new DOMListViewItem(node, m_listView, cur_item);
m_document = pNode.ownerDocument();
} else {
cur_item = new DOMListViewItem(node, parent_item, cur_item);
}
//kDebug(90180) << "</" << node.nodeName().string() << ">";
cur_item = addElement(element, cur_item, true);
// m_listView->setItemExpanded(cur_item, depth < m_expansionDepth);
}
}
}
示例4: moveToParent
void DOMTreeView::moveToParent()
{
// This is a hypersmart algorithm.
// If infoNode is defined, go to the parent of infoNode, otherwise, go
// to the parent of the tree view's current item.
// Hope this isn't too smart.
DOM::Node cur = infoNode;
if (cur.isNull()) cur = static_cast<DOMListViewItem *>(m_listView->currentItem())->node();
if (cur.isNull()) return;
cur = cur.parentNode();
activateNode(cur);
}
示例5: extractCard
void KonqMFIcon::extractCard(DOM::Node node) {
QString name, value;
DOM::NodeList nodes = node.childNodes();
unsigned int n = nodes.length();
value += "BEGIN:VCARD\nVERSION:3.0\n";
for (unsigned int i = 0; i < n; ++i) {
DOM::Node node = nodes.item(i);
DOM::NamedNodeMap map = node.attributes();
for (unsigned int j = 0; j < map.length(); ++j) {
if (map.item(j).nodeName().string() != "class") {
continue;
}
QStringList l = QStringList::split(' ', map.item(j).nodeValue().string());
for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
if (*it == "photo") {
} else if (*it == "adr") {
value += "ADR:" + extractAddress(node) + "\n";
} else if (*it == "tel") {
value += "TEL;TYPE=VOICE:" + textForNode(node) + "\n";
} else if (*it == "fn") {
name = textForNode(node);
value += "FN:" + name + "\n";
} else if (*it == "url") {
DOM::Node at = node.attributes().getNamedItem("href");
if (!at.isNull()) {
value += "URL:" + at.nodeValue().string().stripWhiteSpace() + "\n";
}
} else if (*it == "email") {
DOM::Node at = node.attributes().getNamedItem("href");
if (!at.isNull()) {
QString v = at.nodeValue().string();
if (v.startsWith("mailto:")) {
v = v.mid(7);
}
value += "EMAIL:" + v.stripWhiteSpace() + "\n";
}
} else if (*it == "org") {
value += "ORG:" + textForNode(node) + "\n";
}
}
}
}
if (!name.isEmpty()) {
value += "END:VCARD\n";
_cards.append(qMakePair(name, value));
}
}
示例6: evaluate
QVariant KJSProxyImpl::evaluate(QString filename, int baseLine,
const QString&str, const DOM::Node &n, Completion *completion) {
// evaluate code. Returns the JS return value or an invalid QVariant
// if there was none, an error occured or the type couldn't be converted.
initScript();
// inlineCode is true for <a href="javascript:doSomething()">
// and false for <script>doSomething()</script>. Check if it has the
// expected value in all cases.
// See smart window.open policy for where this is used.
bool inlineCode = filename.isNull();
//kdDebug(6070) << "KJSProxyImpl::evaluate inlineCode=" << inlineCode << endl;
#ifdef KJS_DEBUGGER
if (inlineCode)
filename = "(unknown file)";
if (KJSDebugWin::instance()) {
KJSDebugWin::instance()->attach(m_script);
KJSDebugWin::instance()->setNextSourceInfo(filename,baseLine);
// KJSDebugWin::instance()->setMode(KJSDebugWin::Step);
}
#else
Q_UNUSED(baseLine);
#endif
m_script->setInlineCode(inlineCode);
Window* window = Window::retrieveWindow( m_part );
KJS::Value thisNode = n.isNull() ? Window::retrieve( m_part ) : getDOMNode(m_script->globalExec(),n);
UString code( str );
KJSCPUGuard guard;
guard.start();
Completion comp = m_script->evaluate(code, thisNode);
guard.stop();
bool success = ( comp.complType() == Normal ) || ( comp.complType() == ReturnValue );
if (completion)
*completion = comp;
#ifdef KJS_DEBUGGER
// KJSDebugWin::instance()->setCode(QString::null);
#endif
window->afterScriptExecution();
// let's try to convert the return value
if (success && !comp.value().isNull())
return ValueToVariant( m_script->globalExec(), comp.value());
else
{
if ( comp.complType() == Throw )
{
UString msg = comp.value().toString(m_script->globalExec());
kdWarning(6070) << "Script threw exception: " << msg.qstring() << endl;
}
return QVariant();
}
}
示例7: parse_ul
bool KHTMLReader::parse_ul(DOM::Element e)
{
_list_depth++;
bool popstateneeded = false;
for (DOM::Node items = e.firstChild();!items.isNull();items = items.nextSibling()) {
if (items.nodeName().string().toLower() == "li") {
if (popstateneeded) {
popState();
//popstateneeded = false;
}
pushNewState();
startNewLayout();
popstateneeded = true;
_writer->layoutAttribute(state()->paragraph, "COUNTER", "numberingtype", "1");
_writer->layoutAttribute(state()->paragraph, "COUNTER", "righttext", ".");
if (e.tagName().string().toLower() == "ol") {
_writer->layoutAttribute(state()->paragraph, "COUNTER", "type", "1");
_writer->layoutAttribute(state()->paragraph, "COUNTER", "numberingtype", "1");
_writer->layoutAttribute(state()->paragraph, "COUNTER", "righttext", ".");
} else {
_writer->layoutAttribute(state()->paragraph, "COUNTER", "type", "10");
_writer->layoutAttribute(state()->paragraph, "COUNTER", "numberingtype", "");
_writer->layoutAttribute(state()->paragraph, "COUNTER", "righttext", "");
}
_writer->layoutAttribute(state()->paragraph, "COUNTER", "depth", QString("%1").arg(_list_depth - 1));
}
parseNode(items);
}
if (popstateneeded)
popState();
_list_depth--;
return false;
}
示例8: slotMovedItems
void DOMTreeView::slotMovedItems(QPtrList<QListViewItem> &items, QPtrList<QListViewItem> &/*afterFirst*/, QPtrList<QListViewItem> &afterNow)
{
MultiCommand *cmd = new MultiCommand(i18n("Move Nodes"));
_refreshed = false;
QPtrList<QListViewItem>::Iterator it = items.begin();
QPtrList<QListViewItem>::Iterator anit = afterNow.begin();
for (; it != items.end(); ++it, ++anit) {
DOMListViewItem *item = static_cast<DOMListViewItem *>(*it);
DOMListViewItem *anitem = static_cast<DOMListViewItem *>(*anit);
DOM::Node parent = static_cast<DOMListViewItem *>(item->parent())->node();
Q_ASSERT(!parent.isNull());
// kdDebug(90180) << " afternow " << anitem << " node " << (anitem ? anitem->node().nodeName().string() : QString()) << "=" << (anitem ? anitem->node().nodeValue().string() : QString()) << endl;
cmd->addCommand(new MoveNodeCommand(item->node(), parent,
anitem ? anitem->node().nextSibling() : parent.firstChild())
);
}
mainWindow()->executeAndAddCommand(cmd);
// refresh *anyways*, otherwise consistency is disturbed
if (!_refreshed) refresh();
slotShowNode(current_node);
}
示例9: parseNode
void KHTMLReader::parseNode(DOM::Node node)
{
// check if this is a text node.
DOM::Text t = node;
if (!t.isNull()) {
_writer->addText(state()->paragraph, t.data().string(), 1, state()->in_pre_mode);
return; // no children anymore...
}
// is this really needed ? it can't do harm anyway.
state()->format = _writer->currentFormat(state()->paragraph, true);
state()->layout = _writer->currentLayout(state()->paragraph);
pushNewState();
DOM::Element e = node;
bool go_recursive = true;
if (!e.isNull()) {
// get the CSS information
parseStyle(e);
// get the tag information
go_recursive = parseTag(e);
}
if (go_recursive) {
for (DOM::Node q = node.firstChild(); !q.isNull(); q = q.nextSibling()) {
parseNode(q);
}
}
popState();
}
示例10: initializeOptionsFromNode
void DOMTreeView::initializeOptionsFromNode(const DOM::Node &node)
{
infoNode = node;
nodeName->clear();
nodeType->clear();
nodeNamespace->clear();
nodeValue->clear();
if (node.isNull()) {
nodeInfoStack->raiseWidget(EmptyPanel);
return;
}
nodeName->setText(node.nodeName().string());
nodeType->setText(QString::number(node.nodeType()));
nodeNamespace->setText(node.namespaceURI().string());
// nodeValue->setText(node.value().string());
DOM::Element element = node;
if (!element.isNull()) {
initializeOptionsFromElement(element);
return;
}
DOM::CharacterData cdata = node;
if (!cdata.isNull()) {
initializeOptionsFromCData(cdata);
return;
}
// Fallback
nodeInfoStack->raiseWidget(EmptyPanel);
}
示例11: slotItemClicked
void DOMTreeView::slotItemClicked(QListViewItem *cur_item)
{
DOMListViewItem *cur = static_cast<DOMListViewItem *>(cur_item);
if (!cur) return;
DOM::Node handle = cur->node();
if (!handle.isNull()) {
part->setActiveNode(handle);
}
}
示例12: extractEvent
void KonqMFIcon::extractEvent(DOM::Node node) {
QString name, value = "BEGIN:VCALENDAR\nPRODID:-//Konqueror//EN\nVERSION:2.0\nBEGIN:VEVENT\n";
DOM::NodeList nodes = node.childNodes();
unsigned int n = nodes.length();
for (unsigned int i = 0; i < n; ++i) {
DOM::Node node = nodes.item(i);
DOM::NamedNodeMap map = node.attributes();
for (unsigned int j = 0; j < map.length(); ++j) {
if (map.item(j).nodeName().string() != "class") {
continue;
}
QStringList l = QStringList::split(' ', map.item(j).nodeValue().string());
for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
if (*it == "url") {
DOM::Node at = node.attributes().getNamedItem("href");
if (!at.isNull()) {
value += "URL:" + at.nodeValue().string().stripWhiteSpace() + "\n";
}
} else if (*it == "dtstart") {
DOM::Node at = node.attributes().getNamedItem("title");
if (!at.isNull()) {
value += "DTSTART:" + at.nodeValue().string().stripWhiteSpace() + "\n";
}
} else if (*it == "dtend") {
DOM::Node at = node.attributes().getNamedItem("title");
if (!at.isNull()) {
value += "DTEND:" + at.nodeValue().string().stripWhiteSpace() + "\n";
}
} else if (*it == "summary") {
name = textForNode(node);
value += "SUMMARY:" + name + "\n";
} else if (*it == "location") {
value += "LOCATION:" + textForNode(node) + "\n";
}
}
}
}
if (!name.isEmpty()) {
value += "END:VEVENT\nEND:VCALENDAR\n";
_events.append(qMakePair(name, value));
}
}
示例13: clear_from
static void clear_from(DOM::Node n) {
DOM::Node p = n.parentNode();
while(1) {
DOM::Node next = n.nextSibling();
p.removeChild(n);
if(next.isNull())
break;
n = next;
}
}
示例14: slotShowLinks
void KGet_plug_in::slotShowLinks()
{
if ( !parent() || !parent()->inherits( "KHTMLPart" ) )
return;
KHTMLPart *htmlPart = static_cast<KHTMLPart*>( parent() );
KParts::Part *activePart = 0L;
if ( htmlPart->partManager() )
{
activePart = htmlPart->partManager()->activePart();
if ( activePart && activePart->inherits( "KHTMLPart" ) )
htmlPart = static_cast<KHTMLPart*>( activePart );
}
DOM::HTMLDocument doc = htmlPart->htmlDocument();
if ( doc.isNull() )
return;
DOM::HTMLCollection links = doc.links();
QPtrList<LinkItem> linkList;
std::set<QString> dupeCheck;
for ( uint i = 0; i < links.length(); i++ )
{
DOM::Node link = links.item( i );
if ( link.isNull() || link.nodeType() != DOM::Node::ELEMENT_NODE )
continue;
LinkItem *item = new LinkItem( (DOM::Element) link );
if ( item->isValid() &&
dupeCheck.find( item->url.url() ) == dupeCheck.end() )
{
linkList.append( item );
dupeCheck.insert( item->url.url() );
}
else
delete item;
}
if ( linkList.isEmpty() )
{
KMessageBox::sorry( htmlPart->widget(),
i18n("There are no links in the active frame of the current HTML page."),
i18n("No Links") );
return;
}
KGetLinkView *view = new KGetLinkView();
QString url = doc.URL().string();
view->setPageURL( url );
view->setLinks( linkList );
view->show();
}
示例15: remove
void ManipulateNodeCommand::remove()
{
DOM::DocumentFragment frag = _node;
if (frag.isNull()) { // do a normal remove
_node = _parent.removeChild(_node);
} else { // remove fragment nodes and recreate fragment
DOM::DocumentFragment newfrag = _parent.ownerDocument().createDocumentFragment();
for (DOM::Node i = frag.firstChild(); !i.isNull(); i = i.nextSibling()) {
newfrag.appendChild(_parent.removeChild(i));
}
_node = newfrag;
}
}