本文整理汇总了C++中dom::Node类的典型用法代码示例。如果您正苦于以下问题:C++ Node类的具体用法?C++ Node怎么用?C++ Node使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Node类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: extractAddress
static QString extractAddress(DOM::Node node) {
QString rc = ";;";
QMap<QString,QString> entry;
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;
}
QString a = map.item(j).nodeValue().string();
if (a == "street-address") {
entry["street-address"] = textForNode(node);
} else if (a == "locality") {
entry["locality"] = textForNode(node);
} else if (a == "region") {
entry["region"] = textForNode(node);
} else if (a == "postal-code") {
entry["postal-code"] = textForNode(node);
}
}
}
rc += entry["street-address"] + ";" + entry["locality"] + ";" + entry["region"] + ";" + entry["postal-code"] + ";" + entry["country"];
return rc.stripWhiteSpace();
}
开发者ID:iegor,项目名称:kdesktop,代码行数:28,代码来源:konqmficon.cpp
示例2: execute
virtual void execute(const DOM::Node<string_type, string_adaptor>& node,
ExecutionContext<string_type, string_adaptor>& context) const
{
ParamPasser<string_type, string_adaptor> passer(*this, node, context);
if(!SortableT::has_sort() && select_ == 0)
{
if(node.hasChildNodes())
context.stylesheet().applyTemplates(node.getChildNodes(), context, mode_);
return;
}
Arabica::XPath::NodeSet<string_type, string_adaptor> nodes;
if(select_ == 0)
for(DOM::Node<string_type, string_adaptor> n = node.getFirstChild(); n != 0; n = n.getNextSibling())
nodes.push_back(n);
else
{
Arabica::XPath::XPathValue<string_type, string_adaptor> value = select_->evaluate(node, context.xpathContext());
if(value.type() != Arabica::XPath::NODE_SET)
throw std::runtime_error("apply-templates select expression is not a node-set");
nodes = value.asNodeSet();
}
this->sort(node, nodes, context);
context.stylesheet().applyTemplates(nodes, context, mode_);
} // execute
开发者ID:QuentinFiard,项目名称:arabica,代码行数:26,代码来源:xslt_apply_templates.hpp
示例3: hasMicroFormat
bool KonqMFIcon::hasMicroFormat(DOM::NodeList nodes) {
bool ok = false;
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;
}
if (map.item(j).nodeValue().string() == "vevent") {
ok = true;
extractEvent(node);
break;
}
if (map.item(j).nodeValue().string() == "vcard") {
ok = true;
extractCard(node);
break;
}
}
if (hasMicroFormat(node.childNodes())) {
ok = true;
}
}
return ok;
}
开发者ID:iegor,项目名称:kdesktop,代码行数:27,代码来源:konqmficon.cpp
示例4: 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);
}
开发者ID:iegor,项目名称:kdesktop,代码行数:27,代码来源:domtreeview.cpp
示例5: 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();
}
开发者ID:KDE,项目名称:koffice,代码行数:34,代码来源:khtmlreader.cpp
示例6: 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;
}
开发者ID:KDE,项目名称:koffice,代码行数:33,代码来源:khtmlreader.cpp
示例7: slotAddTextDlg
void DOMTreeView::slotAddTextDlg()
{
DOMListViewItem *item = static_cast<DOMListViewItem *>(m_listView->currentItem());
if (!item) return;
QString text;
SignalReceiver addBefore;
{
TextEditDialog dlg(this, "TextEditDialog", true);
connect(dlg.insBeforeBtn, SIGNAL(clicked()), &addBefore, SLOT(slot()));
if (dlg.exec() != QDialog::Accepted) return;
text = dlg.textPane->text();
}
DOM::Node curNode = item->node();
try {
DOM::Node parent = addBefore() ? curNode.parentNode() : curNode;
DOM::Node after = addBefore() ? curNode : 0;
DOM::Node newNode = curNode.ownerDocument().createTextNode(text);
ManipulationCommand *cmd = new InsertNodeCommand(newNode, parent, after);
mainWindow()->executeAndAddCommand(cmd);
if (cmd->isValid()) activateNode(newNode);
} catch (DOM::DOMException &ex) {
mainWindow()->addMessage(ex.code, domErrorMessage(ex.code));
}
}
开发者ID:iegor,项目名称:kdesktop,代码行数:34,代码来源:domtreeview.cpp
示例8: 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();
}
开发者ID:KDE,项目名称:koffice,代码行数:27,代码来源:khtmlreader.cpp
示例9: 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);
}
开发者ID:iegor,项目名称:kdesktop,代码行数:34,代码来源:domtreeview.cpp
示例10: operator
virtual bool operator()(const DOM::Node<string_type, string_adaptor>& node) const
{
int type = node.getNodeType();
return (type == DOM::Node_base::ELEMENT_NODE || type == NAMESPACE_NODE_TYPE) &&
(name_ == node.getNodeName()) &&
(string_adaptor::empty(node.getNamespaceURI()));
} // test
开发者ID:KITSVictorGubin,项目名称:jornal,代码行数:7,代码来源:xpath_node_test.hpp
示例11: do_characters
void do_characters(const std::string& ch)
{
DOM::Node<std::string> lc = current().getLastChild();
if(lc == 0 || lc.getNodeType() != DOM::Node_base::TEXT_NODE)
current().appendChild(document().createTextNode(ch));
else
lc.setNodeValue(lc.getNodeValue() + ch);
} // do_characters
开发者ID:KITSVictorGubin,项目名称:jornal,代码行数:8,代码来源:xslt_sink.hpp
示例12: 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);
}
}
开发者ID:Axure,项目名称:tagua,代码行数:9,代码来源:movelist_textual.cpp
示例13: 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);
}
}
开发者ID:iegor,项目名称:kdesktop,代码行数:10,代码来源:domtreeview.cpp
示例14: 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);
}
}
}
开发者ID:blue-shell,项目名称:folderview,代码行数:55,代码来源:domtreeview.cpp
示例15: 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();
}
开发者ID:woodyplus,项目名称:kde3-kdenetwork,代码行数:54,代码来源:kget_plug_in.cpp
示例16:
khtml::MouseEvent::MouseEvent(const char *name, QMouseEvent *qmouseEvent, int x, int y,
const DOM::DOMString &url, const DOM::DOMString &target,
const DOM::Node &innerNode)
: KParts::Event(name), m_qmouseEvent(qmouseEvent), m_x(x), m_y(y),
m_url(url), m_target(target), m_innerNode(innerNode)
{
d = 0;
if (innerNode.handle() && innerNode.handle()->renderer()) {
innerNode.handle()->renderer()->absolutePosition(m_nodeAbsX, m_nodeAbsY);
}
}
开发者ID:KDE,项目名称:khtml,代码行数:11,代码来源:khtml_events.cpp
示例17: process_content
virtual void process_content(const DOM::Node<std::string>& node, ExecutionContext& context) const
{
if(node.hasAttributes())
{
const DOM::NamedNodeMap<std::string>& attrs = node.getAttributes();
for(unsigned int a = 0; a < attrs.getLength(); ++a)
copy(attrs.item(a), context);
} // if ...
for(DOM::Node<std::string> n = node.getFirstChild(); n != 0; n = n.getNextSibling())
copy(n, context);
} // process_content
开发者ID:KITSVictorGubin,项目名称:jornal,代码行数:12,代码来源:xslt_copy.hpp
示例18: checkNodeBA
void Range::checkNodeBA( DOM::Node n ) const
{
checkNode( n );
if( n.nodeType() == Node::DOCUMENT_NODE ||
n.nodeType() == Node::DOCUMENT_FRAGMENT_NODE ||
n.nodeType() == Node::ATTRIBUTE_NODE ||
n.nodeType() == Node::ENTITY_NODE ||
n.nodeType() == Node::NOTATION_NODE )
throw RangeException( RangeException::INVALID_NODE_TYPE_ERR );
}
开发者ID:BackupTheBerlios,项目名称:nirvana-svn,代码行数:12,代码来源:dom2_range.cpp
示例19: textForNode
static QString textForNode(DOM::Node node) {
QString rc;
DOM::NodeList nl = node.childNodes();
for (unsigned int i = 0; i < nl.length(); ++i) {
DOM::Node n = nl.item(i);
if (n.nodeType() == DOM::Node::TEXT_NODE) {
rc += n.nodeValue().string();
}
}
// FIXME: entries need to be escaped for vcard/vevent
return rc.stripWhiteSpace();
}
开发者ID:iegor,项目名称:kdesktop,代码行数:12,代码来源:konqmficon.cpp
示例20: innerNode
long khtml::MouseEvent::offset() const
{
Position pos;
if (innerNode().handle()) {
// FIXME: Shouldn't be necessary to skip text nodes.
DOM::Node inner = innerNode();
if (inner.nodeType() == Node::TEXT_NODE) {
inner = inner.parentNode();
}
pos = inner.handle()->positionForCoordinates(m_x, m_y).position();
}
return pos.offset();
}
开发者ID:KDE,项目名称:khtml,代码行数:13,代码来源:khtml_events.cpp
注:本文中的dom::Node类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论