我在写VIPS算法
然后遇到一个关于文本结点的问题.对于某个特定IHTMLElement元素pElem, CComQIPtr<IHTMLElement>pElement( pElem );
CComQIPtr<IHTMLDOMNode>pNode( pElement ); long p;
pNode->get_nodeType( &p );这里得到的p值为1.
我自己写了一个很简单的HTML 文档简单验证了一下.基本上没有p等于3的情况出现.
对于没有标签的文字,接点里是没有的以下是msdn里的解释:
SyntaxHRESULT IHTMLDOMNode::get_nodeType(long *p);
Parametersp
Pointer to a variable of type long that receives one of the values listed in Possible Values.Possible Values1 Element node.
3 Text node. 不知道这里的p=3 在什么情况下出现,还是text node 另有解释?
有人碰到过这种问题吗?
然后遇到一个关于文本结点的问题.对于某个特定IHTMLElement元素pElem, CComQIPtr<IHTMLElement>pElement( pElem );
CComQIPtr<IHTMLDOMNode>pNode( pElement ); long p;
pNode->get_nodeType( &p );这里得到的p值为1.
我自己写了一个很简单的HTML 文档简单验证了一下.基本上没有p等于3的情况出现.
对于没有标签的文字,接点里是没有的以下是msdn里的解释:
SyntaxHRESULT IHTMLDOMNode::get_nodeType(long *p);
Parametersp
Pointer to a variable of type long that receives one of the values listed in Possible Values.Possible Values1 Element node.
3 Text node. 不知道这里的p=3 在什么情况下出现,还是text node 另有解释?
有人碰到过这种问题吗?
位于标签里面的文本,不是一个独立的IHTMLElement,但可以是一个独立的IHTMLDOMNode
CComPtr<IDispatch> pDispc( pDisp );
CComQIPtr<IHTMLElementCollection> pColl(pDispc);
pDoc->get_all(&pColl);
long n = 0;
pColl->get_length( &n );
for( long i=0;i<n;i++ )
{
CComPtr<IDispatch> spcoll;
pColl->item( CComVariant( i ),CComVariant( ),&spcoll );
CComQIPtr<IHTMLElement>pElement( spcoll );
CComQIPtr<IHTMLDOMNode>pNode( pElement );
if(pElement != NULL)
{
CComBSTR bsData;
pElement->get_tagName(&bsData);
long p;
pNode->get_nodeType( &p );
}
}我这样循环后,发现没有P等于三的情况发生.
我自己写的html 文档如下:<html>
<head>
<title>文本程序</title>
</head>
<body>
<a href="http://www.sina.com.cn/">首页</a> <a href="http://www.sohu.com.cn/">新闻</a> <a href="http://www.baidu.com.cn/">社区</a> <a href="http://www.sohu.com.cn/">军事</a>
<img src="C:\Documents and Settings\Administrator\桌面\无标题.gif" align="left" />
<p><h1>也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML
文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。</h1></p>
<p>也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个
对象模型的操作,来实现对XML文档数据的操作。<p>也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个
对象模型的操作,来实现对XML文档数据的操作。</p></p>
这是新加的不带任何标签的文本
</body>
</html>
或者这样说:纯文本是一个节点,但不是元素。所以你上面的代码应该这样:pNode->get_firstChild()->get_nodeType试试。