前提・実現したいこと
こちらのサイトを参考にVBSでYahoo!のルビ振りAPIを使用して漢字のふりがなを取得しようとしています。
発生している問題・エラーメッセージ
最初のふりがな<Furigana>やまだ</Furigana>
は取得できるのですが、もう一つのふりがな<Furigana>たろう</Furigana>
が取得できず以下のエラーになります。
オブジェクトがありません。
取得対象のXML
<?xml version="1.0" encoding="UTF-8"?> <ResultSet xmlns="urn:yahoo:jp:jlp:FuriganaService" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:jp:jlp:FuriganaService https://jlp.yahooapis.jp/FuriganaService/V1/furigana.xsd"> <Result> <WordList> <Word> <Surface>山田</Surface> <Furigana>やまだ</Furigana> <Roman>yamada</Roman> </Word> <Word> <Surface> </Surface> </Word> <Word> <Surface>太郎</Surface> <Furigana>たろう</Furigana> <Roman>tarou</Roman> </Word> </WordList> </Result> </ResultSet>
該当のソースコード
Option Explicit Dim objIE Dim objLink Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEを開く objIE.navigate "https://jlp.yahooapis.jp/FuriganaService/V1/furigana?appid=APIキー&grade=1&sentence=%E5%B1%B1%E7%94%B0%E3%80%80%E5%A4%AA%E9%83%8E" 'ページが読み込まれるまで待つ Do While objIE.Busy = True Or objIE.readyState <> 4 WScript.Sleep 100 Loop Dim objTr,objTh,objTd Dim el '要素をコレクションとして取得して変数にセット Set objTr = objIE.document.getElementsByTagName("Word") For each el In objTr Set objTh = el.getElementsByTagName("Furigana") MsgBox objTh(0).innerText MsgBox objTh(1).innerText next
試したこと
objTh(1).innerText
に<Furigana>たろう</Furigana>
が入っていないのでエラーになるのは分かるのですが、どのようにすれば両方のFuriganaを取得できるのでしょうか。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Windows 10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。