本文整理汇总了C++中FirstChild函数的典型用法代码示例。如果您正苦于以下问题:C++ FirstChild函数的具体用法?C++ FirstChild怎么用?C++ FirstChild使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了FirstChild函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FirstChildElement
const TiXmlElement* TiXmlNode::FirstChildElement( const char * _value ) const
{
const TiXmlNode* node;
for ( node = FirstChild( _value );
node;
node = node->NextSibling( _value ) )
{
if ( node->ToElement() )
return node->ToElement();
}
return 0;
}
示例2: FirstChildElement
TiXmlElement* TiXmlNode::FirstChildElement()
{
TiXmlNode* node;
for ( node = FirstChild();
node;
node = node->NextSibling() )
{
if ( node->ToElement() )
return node->ToElement();
}
return 0;
}
示例3: StreamOut
void TiXmlDocument::StreamOut( TIXML_OSTREAM * out ) const
{
TiXmlNode* node;
for ( node=FirstChild(); node; node=node->NextSibling() )
{
node->StreamOut( out );
// Special rule for streams: stop after the root element.
// The stream in code will only read one element, so don't
// write more than one.
if ( node->ToElement() )
break;
}
}
示例4: Accept
bool XMLDocument::Accept(XMLVisitor* visitor) const
{
if (visitor->VisitEnter(*this))
{
for (const XMLNode* node = FirstChild(); node; node = node->NextSibling())
{
if (!node->Accept(visitor))
{
break;
}
}
}
return visitor->VisitExit(*this);
}
示例5: FirstChild
const char * XmlNode::GetText() const
{
const TiXmlNode * childNode = FirstChild();
if ( childNode == NULL )
{
return NULL;
}
IE_ASSERT( childNode->Type() == TEXT );
const TiXmlText * text = childNode->ToText();
IE_ASSERT( text );
return text->Value();
}
示例6: LeafRef
void XMLParagraph::DeleteLeaf(size_t nLeaf)
{
auto pNode = LeafRef(nLeaf).Node();
auto pParent = pNode->Parent();
while(pParent && (pParent->FirstChild() == pParent->LastChild())){
pNode = pParent;
pParent = pParent->Parent();
}
if(pParent){
pParent->DeleteChild(pNode);
}
}
示例7: BuildCookieEditorListL
void CookiePath::BuildCookieEditorListL(CookieDomain* domain)
{
Cookie *ck = (Cookie*)cookie_list.First();
if( ck )
{
ck->BuildCookieEditorListL(domain, this);
}
CookiePath *cp = (CookiePath*)FirstChild();
while(cp)
{
cp->BuildCookieEditorListL(domain);
cp = cp->Suc();
}
}
示例8: FirstChild
Node * Node::FindEditChildByAttrib ( std::string const & childName,
std::string const & attrName,
std::string const & attrValue)
{
XML::Node::ChildIter it = FirstChild ();
XML::Node::ChildIter last = LastChild ();
while (it != last)
{
XML::Node * child = *it;
if (child->GetName () == childName && child->FindAttribValue (attrName) == attrValue)
return child;
++it;
}
return 0;
}
示例9: while
void CookiePath::IterateAllCookies()
{
Cookie* ck = static_cast<Cookie*>( cookie_list.First() );
OpCookieIteratorListener* listener = g_cookie_API->GetCookieIteratorListener();
while( ck )
{
listener->OnIterateCookies(*ck);
ck = ck->Suc();
}
CookiePath* cp = static_cast<CookiePath*>( FirstChild() );
while (cp)
{
cp->IterateAllCookies();
cp = cp->Suc();
}
}
示例10: Printe
int TiXmlDocument::Printe( char * xmlstr, int totallen, int depth, int& len )
{
char tempstr[MAX_XML_SIZE] = {0};
TiXmlNode* node = NULL;
for ( node = FirstChild(); node; node = node->NextSibling() )
{
//#ifdef _PUTSTRING
if ( node->Printe( xmlstr, totallen, depth, len ) < 0 )
{
return -2;
}
//#endif
sprintf( tempstr, "\n" );
SAFE_STRCAT;
}
return 0;
}
示例11: sizeof
void CookiePath::GetMemUsed(DebugUrlMemory &debug)
{
debug.memory_cookies += sizeof(*this) + path.Length();
Cookie *ck = (Cookie *) cookie_list.First();
while(ck)
{
ck->GetMemUsed(debug);
ck = ck->Suc();
}
CookiePath *cp = (CookiePath *) FirstChild();
while(cp)
{
cp->GetMemUsed(debug);
cp = cp->Suc();
}
}
示例12: NS_PRECONDITION
nsFrameList::Slice
nsFrameList::InsertFrames(nsIFrame* aParent, nsIFrame* aPrevSibling,
nsFrameList& aFrameList)
{
NS_PRECONDITION(aFrameList.NotEmpty(), "Unexpected empty list");
if (aParent) {
aFrameList.ApplySetParent(aParent);
}
NS_ASSERTION(IsEmpty() ||
FirstChild()->GetParent() == aFrameList.FirstChild()->GetParent(),
"frame to add has different parent");
NS_ASSERTION(!aPrevSibling ||
aPrevSibling->GetParent() == aFrameList.FirstChild()->GetParent(),
"prev sibling has different parent");
#ifdef DEBUG_FRAME_LIST
// ContainsFrame is O(N)
NS_ASSERTION(!aPrevSibling || ContainsFrame(aPrevSibling),
"prev sibling is not on this list");
#endif
nsIFrame* firstNewFrame = aFrameList.FirstChild();
nsIFrame* nextSibling;
if (aPrevSibling) {
nextSibling = aPrevSibling->GetNextSibling();
aPrevSibling->SetNextSibling(firstNewFrame);
}
else {
nextSibling = mFirstChild;
mFirstChild = firstNewFrame;
}
nsIFrame* lastNewFrame = aFrameList.LastChild();
lastNewFrame->SetNextSibling(nextSibling);
if (!nextSibling) {
mLastChild = lastNewFrame;
}
VerifyList();
aFrameList.Clear();
return Slice(*this, firstNewFrame, nextSibling);
}
示例13: fprintf
void CookiePath::DebugWriteCookies(FILE* fp)
{
fprintf(fp, " ");
DebugWritePath(fp);
fprintf(fp, ": \n");
Cookie* ck = (Cookie*) cookie_list.First();
while (ck)
{
fprintf(fp, " %s=%s; %lu; %d; %lu %s\n", ck->Name(), ck->Value(), ck->Expires(), ck->Secure(), ck->GetLastUsed(), (ck->DiscardAtExit() ? "; Discard on exit" : ""));
ck = ck->Suc();
}
CookiePath* cp = (CookiePath*) FirstChild();
while (cp)
{
cp->DebugWriteCookies(fp);
cp = cp->Suc();
}
}
示例14: FirstChild
NS_IMETHODIMP
inDeepTreeWalker::NextNode(nsIDOMNode **_retval)
{
// First try our kids
FirstChild(_retval);
if (*_retval) {
return NS_OK;
}
// Now keep trying next siblings up the parent chain, but if we
// discover there's nothing else restore our state.
#ifdef DEBUG
nsIDOMNode* origCurrentNode = mCurrentNode;
#endif
uint32_t lastChildCallsToMake = 0;
while (1) {
NextSibling(_retval);
if (*_retval) {
return NS_OK;
}
nsCOMPtr<nsIDOMNode> parent;
ParentNode(getter_AddRefs(parent));
if (!parent) {
// Nowhere else to go; we're done. Restore our state.
while (lastChildCallsToMake--) {
nsCOMPtr<nsIDOMNode> dummy;
LastChild(getter_AddRefs(dummy));
}
NS_ASSERTION(mCurrentNode == origCurrentNode,
"Didn't go back to the right node?");
*_retval = nullptr;
return NS_OK;
}
++lastChildCallsToMake;
}
NS_NOTREACHED("how did we get here?");
return NS_OK;
}
示例15: WriteOpeningTag
void Node::Write (std::ostream & out, unsigned indent) const
{
WriteOpeningTag (out, indent);
if (!_closed)
{
for (ConstChildIter it = FirstChild (); it != LastChild (); ++it)
{
XML::Node * child = *it;
if (child->GetName ().empty ()) // text
{
out << Indentation (indent) << child->GetAttribValue ("Text") << std::endl;
}
else
{
child->Write (out, indent + 2);
}
}
}
WriteClosingTag (out, indent);
}