0

2つの要素の間でHTMLを抽出する必要があります。例えば

<html>
<head> </head>
<body>
<div>
<span id="start">                
<span> Some text </span>
<span> some other text</span> 
</span>
<span id="parent">                
<span id="target"> target node </span>
<span> some other text</span> 
</span>
</div>
</body>
</html>

ここで、IDが「start」のスパンからIDが「target」のスパンまでのHTMLコンテンツを抽出したいと思います。

結果:

<span id="start">                
<span> Some text </span>
<span> some other text</span> 
</span>
<span>                
<span id="target"> target node </span>

私は以下を使用してHTMLを抽出することができました:

ツリー解析方式を使用しています。

htmlDocPtr xhtmlDoc = htmlReadFile(fileName.c_str(), "UTF-8",            HTML_PARSE_RECOVER|HTML_PARSE_NOERROR|HTML_PARSE_NOWARNING);

htmlNodePtr rootNodePtr = xmlDocGetRootElement(xhtmlDoc);

次に、必要なノードに解析してから、次を使用しました。

xmlBufferPtr nodeBuffer = xmlBufferCreate();
xmlNodeDump(nodeBuffer, xhtmlDoc, cur_node, 0, 1);
printf("%s\n",nodeBuffer->content);

注:cur_nodeのタイプはxmlNode*です。

しかし、問題は、IDが「親」のスパンに到達し、HTMLコンテンツ全体を指定してデータを抽出すると、次のようになります。

<span id="start">                
<span> Some text </span>
<span> some other text</span> 
</span>
<span id="parent">                
<span id="target"> target node </span>
<span> some other text</span> 
</span>

余分なコンテンツを意味します。どうすれば意図した結果を達成できますか?

4

0 に答える 0