2012-09-23 2 views
1

나는 이미 디렉토리를 통해 구문 분석하고 모든 html 파일을 찾는 데 필요한 코드를 작성했습니다. 그러나 필요한 정보를 얻기 위해 각 파일을 구문 분석해야합니다. 스토리의 제목, 저자, 카테고리, 챕터 수, 소스 및 요약을 추출하여 데이터베이스의 올바른 필드에 추가해야합니다. 각 html 파일은 같은 방법으로 설정됩니다. 가능한 경우 각 이야기에 대한 단어 수를 얻고 싶습니다. 단어 수는 각 CHAPTER TEXT 영역에있는 모든 단어의 합계입니다. 다음은 각 html 파일의 작성 방법에 대한 개요입니다. 이 작업을 수행하는 가장 좋은 방법을 알려주십시오.ms 데이터에 대한 액세스 구문 분석 html 파일

<html> 
<head> 
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> 
    <meta name="author" content="AUTHOR"> 
    <title>AUTHOR: TITLE</title> 
</head> 
<body> 
    <br/><br/> 
    <div style="text-align:center"> 
     <h1>TITLE</h1> 
    </div> 
    <b>Story:</b> TITLE<br> 
    <b>Storylink:</b> <a href="URL">URL 
    <b>Category:</b> CATEGORY<br> 
    <b>Author:</b> AUTHOR<br/> 
    <b>Last updated:</b> 10/16/2011<br/> 
    <b>Status:</b> STATUS<br/> 
    <b>Content:</b> Chapter 1 to 16 of 16 chapters<br/> 
    <b>Source:</b> SOURCE<br><br> 
    <b>Summary:</b> SUMMARY 

    <!--CHAPTERAREA START--> 
     <h2 class=chapterffdl>*Chapter 1*: Chapter 1</h2> 
     CHAPTER TEXT CHAPTER TEXT CHAPTER TEXT 

     <h2 class=chapterffdl>*Chapter 2*: Chapter 2</h2> 
     CHAPTER TEXT CHAPTER TEXT CHAPTER TEXT 

     ... 

    <!--CHAPTERAREA STOP--> 

</body> 
</html> 
+0

첫째는, 스택 오버플로에 오신 것을 환영합니다! 스택 오버플로는 특정 코딩 문제 또는 조언을위한 것입니다. 시도한 코드와 실패한 코드를 게시하십시오. –

+0

A.M.K, 저는 액세스 및 VBA에 상당히 익숙합니다. 나는 로컬 html 파일을 온라인으로 구문 분석하는 방법을 찾고자 노력했지만 꽤 실패했다. 내가 찾은 가장 가까운 텍스트 파일을 통해 구문 분석입니다. 그러나 파일에서 줄을 읽는 방법을 모르겠습니다. 내가 기본으로 사용했던 코드는 다음과 같습니다. 희미한 intFile는 문자열로 희미한 strBuffer는 문자열로 희미한 strFile는 문자열로 는 strFile = strPath & strFileName intFile = FreeFile() #intFile으로 입력을 열기 strFile는 는 EOF (intFile)는 거짓 라인 = 않지만 입력 #intFile, strBuffer 루프 닫기 #intFile – AerialAbhorsen

+0

사실 나는 액세스 및 VBA에 대해 _no_ 경험이 있으며, 나는 단지 질문을 검토하고있었습니다. –

답변

0

스타트 :

Sub ParseHTML() 
''Requires that you add a reference to the 
''Windows Script Host Object Model 
''Use Tools->References 

Dim fs As New FileSystemObject 
Dim fl As Folder 
Dim f As File 
Dim ts As TextStream 
Dim sList As Variant 
Dim rs As Recordset 

''s="create table stories (story text,author text,category text,content text,source text,summary text) 
''CurrentDb.Execute S 

Set rs = CurrentDb.OpenRecordset("stories") 

sList = Split("story,author,category,content,source,summary", ",") 

Set fl = fs.GetFolder("Z:\docs\") 
For Each f In fl.Files 
    If f.Type Like "*HTML*" Then 
     Debug.Print f.Name 
     Set ts = fs.OpenTextFile(f.Path, ForReading) 
     Do While Not ts.AtEndOfStream 
      a = ts.ReadLine 
      For i = 0 To UBound(sList) 
       If Left(Trim(a), Len(sList(i)) + 4) = "<b>" & sList(i) & ":" 
        If Trim(a) Like "<b>Story:*" Then 
         rs.AddNew 
        End If 
        rs(sList(i)) = Trim(a) 
        If Trim(a) Like "<b>Summary:*" Then 
         rs.Update 
         Exit Do 
        End If 
       End If 
      Next 
     Loop 
    End If 
Next 

End Sub 
+0

Thanks Remou! 이 코드는 필자가 필요로하는 것입니다. – AerialAbhorsen