<DOC NUMBER=1>
<DOCFULL> -->
<br><div class="c0">
<p class="c1"><span class="c2">Dokument 1 von 3</span></p>
</div>
<br><div class="c0">
<br><p class="c1"><span class="c2">Associated Press Financial Wire</span></p>
</div>
<br><div class="c3">
<p class="c1"><span class="c2">April 25, 2012 Wednesday 9:18 PM GMT </span></p>
</div>
<br><div class="c4">
<p class="c5"><span class="c6">Apple CEO Tim Cook emerges from Steve Jobs' shadow</span></p>
</div>
<br><div class="c4">
<p class="c5"><span class="c7">BYLINE: </span><span class="c2">By PETER SVENSSON, AP Technology Writer</span></p>
</div>
<br><div class="c4">
<p class="c5"><span class="c7">SECTION: </span><span class="c2">BUSINESS NEWS</span></p>
</div>
<br><div class="c4">
<p class="c5"><span class="c7">LENGTH: </span><span class="c2">794 words</span></p>
</div>
<br><div class="c4">
<p class="c5"><span class="c7">DATELINE: </span><span class="c2">NEW YORK </span></p>
</div>
<br><div class="c4">
<p class="c8"><span class="c2"> MAIN TEXT 1</span></p>
</div>
<br><div class="c4">
<p class="c5"><span class="c7">LOAD-DATE: </span><span class="c2">April 26, 2012</span></p>
</div>
<br><div class="c4">
<p class="c5"><span class="c7">LANGUAGE: </span><span class="c2">ENGLISH</span></p>
</div>
<br><div class="c4">
<p class="c5"><span class="c7">PUBLICATION-TYPE: </span><span class="c2">Newswire</span></p>
</div>
<br><div class="c0">
<br><p class="c1"><span class="c2">Copyright 2012 Associated Press<br>All Rights Reserved</span></p>
</div>
<!-- Hide XML section from browser
</DOCFULL>
</DOC> -->
私は xpath を初めて使用し、R (Duncan Lang の xml パッケージ) と組み合わせて使用して、LexisNexis から受け取った html ドキュメントを照会したいと考えています。<DOC NUMBER=1> <DOCFULL>
ドキュメントには複数のニュース記事が含まれており、各記事はタグで区切られています。たとえば、セクション情報を抽出するために、各ドキュメントのいくつかの情報を抽出したいと思います。
doc <- htmlParse("hmtldoc.HTML")
xpathSApply(doc,"//span[text()='SECTION: ']/..", xmlValue)
それは私に与える:
[1] "SECTION: BUSINESS NEWS" "SECTION: BUSINESS NEWS" "SECTION: BUSINESS NEWS"
それは私が扱うことができる出力です。主な問題は、すべての記事に SECTION 情報があるわけではないことです。私が知る必要があるのは、どの記事がこの情報を提供し、どの記事が提供しないかです。できれば NA または空のリスト要素を返すことで、この情報を自分で推測できます。
この質問に関連する: 最初に DOC または DOCFULL ノードのいずれかを選択し、そこから先に進むソリューションを考え出そうとしました。
xpathSApply(doc,"//DOCFULL/*/span[text()='SECTION: ']/..", xmlValue)
これは上記と同じテキストを返すはずだと思っていましたが、そうではありません。とにかく、私はまだこの言語に慣れていないので、助けていただければ幸いです。