本文整理汇总了C++中dom::Node::ownerDocument方法的典型用法代码示例。如果您正苦于以下问题:C++ Node::ownerDocument方法的具体用法?C++ Node::ownerDocument怎么用?C++ Node::ownerDocument使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dom::Node
的用法示例。
在下文中一共展示了Node::ownerDocument方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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);
}
}
}
示例2: saveTreeAsHTML
void DOMTreeView::saveTreeAsHTML(const DOM::Node &pNode)
{
assert(m_textStream);
// Add a doctype
(*m_textStream) <<"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">" << endl;
if(pNode.ownerDocument().isNull()) {
saveRecursive(pNode, 0);
} else {
saveRecursive(pNode.ownerDocument(), 0);
}
}
示例3: 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));
}
}
示例4: slotAddElementDlg
void DOMTreeView::slotAddElementDlg()
{
DOMListViewItem *item = static_cast<DOMListViewItem *>(m_listView->currentItem());
if (!item) return;
QString qname;
QString namespc;
SignalReceiver addBefore;
{
ElementEditDialog dlg(this);
dlg.setModal(true);
connect(dlg.button(KDialog::User2), SIGNAL(clicked()), &addBefore, SLOT(slot()));
// ### activate when namespaces are supported
dlg.elemNamespace->setEnabled(false);
if (dlg.exec() != QDialog::Accepted) return;
qname = dlg.elemName->text();
namespc = dlg.elemNamespace->currentText();
}
DOM::Node curNode = item->node();
try {
DOM::Node parent = addBefore() ? curNode.parentNode() : curNode;
DOM::Node after = addBefore() ? curNode : 0;
// ### take namespace into account
DOM::Node newNode = curNode.ownerDocument().createElement(qname);
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));
}
}
示例5: initializeOptionsFromNode
void DOMTreeView::initializeOptionsFromNode(const DOM::Node &node)
{
infoNode = node;
nodeName->clear();
nodeType->clear();
nodeNamespace->clear();
nodeValue->clear();
if (node.isNull()) {
nodeInfoStack->setCurrentIndex(EmptyPanel);
return;
}
nodeName->setText(node.nodeName().string());
nodeType->setText(QString::number(node.nodeType()));
nodeNamespace->setText(node.namespaceURI().string());
// nodeValue->setText(node.value().string());
initializeStyleSheetsFromDocument(node.ownerDocument());
DOM::Element element = node;
if (!element.isNull()) {
initializeOptionsFromElement(element);
return;
}
DOM::CharacterData cdata = node;
if (!cdata.isNull()) {
initializeOptionsFromCData(cdata);
return;
}
// Fallback
nodeInfoStack->setCurrentIndex(EmptyPanel);
}
示例6: addElement
void DOMTreeView::addElement ( const DOM::Node &node, DOMListViewItem *cur_item, bool isLast)
{
cur_item->setClosing(isLast);
const QString nodeName(node.nodeName().string());
QString text;
const DOM::Element element = node;
if (!element.isNull()) {
if (!m_bPure) {
if (isLast) {
text ="</";
} else {
text = "<";
}
text += nodeName;
} else {
text = nodeName;
}
if (m_bShowAttributes && !isLast) {
QString attributes;
DOM::Attr attr;
DOM::NamedNodeMap attrs = element.attributes();
unsigned long lmap = attrs.length();
for( unsigned int j=0; j<lmap; j++ ) {
attr = static_cast<DOM::Attr>(attrs.item(j));
attributes += " " + attr.name().string() + "=\"" + attr.value().string() + "\"";
}
if (!(attributes.isEmpty())) {
text += " ";
}
text += attributes.simplifyWhiteSpace();
}
if (!m_bPure) {
if(element.firstChild().isNull()) {
text += "/>";
} else {
text += ">";
}
}
cur_item->setText(0, text);
} else {
text = "`" + node.nodeValue().string() + "'";
// Hacks to deal with PRE
QTextStream ts( text, IO_ReadOnly );
while (!ts.eof()) {
const QString txt(ts.readLine());
const QFont font(KGlobalSettings::fixedFont());
cur_item->setFont( font );
cur_item->setText(0, txt);
if(node.handle()) {
m_itemdict.insert(node.handle(), cur_item);
}
DOMListViewItem *parent;
if (cur_item->parent()) {
parent = static_cast<DOMListViewItem *>(cur_item->parent());
} else {
parent = cur_item;
}
cur_item = new DOMListViewItem(node, parent, cur_item);
}
// This is one is too much
DOMListViewItem *notLastItem = static_cast<DOMListViewItem *>(cur_item->itemAbove());
delete cur_item;
cur_item = notLastItem;
}
if (m_bHighlightHTML && node.ownerDocument().isHTMLDocument()) {
highlightHTML(cur_item, nodeName);
}
}