はのはCで保存され、次のように私はページを持っているとしましょうエクセルVBAでHTMLを操作:\ tempに\ html_page.html:読むと
<html>
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="xxx1">
<img src="test.png">
</div>
</body>
</html>
私はプログラム的にIMGのsrc属性を調整したいと思います
、Excelデータ& VBAに基づいています。基本的にXpathでdivを見つけて、その中に含まれている(単一の)imgタグを調整する方法です。
XMLライブラリhereを使ってVBAでXMLを操作する例が見つかりましたが、私はHTMLオブジェクトライブラリでこの作業を行うことに頭を悩ましています。サンプルやドキュメントを見つけることができません。
Dim XDoc As Object, root As Object
Set XDoc = CreateObject("MSXML2.DOMDocument")
XDoc.async = False: XDoc.validateOnParse = False
If XDoc.Load(html_path) Then
Debug.Print "Document loaded"
Else
Dim strErrText As String
Dim xPE As MSXML2.IXMLDOMParseError
' Obtain the ParseError object
Set xPE = XDoc.parseError
With xPE
strErrText = "Your XML Document failed to load" & _
"due the following error." & vbCrLf & _
"Error #: " & .ErrorCode & ": " & xPE.reason & _
"Line #: " & .Line & vbCrLf & _
"Line Position: " & .linepos & vbCrLf & _
"Position In File: " & .filepos & vbCrLf & _
"Source Text: " & .srcText & vbCrLf & _
"Document URL: " & .URL
End With
MsgBox strErrText, vbExclamation
私がやりたいすべてがある:
'...
Set outer_div = XDoc.SelectFirstNode("//div[id='xxx1'")
... edit the img attribute
しかし、それは適切なXML(imgタグが閉じていない)ではないので、私は、HTMLページをロードすることはできません。
ご協力いただきまして誠にありがとうございます。ああ、私はPythonのような他の言語を使うことはできません。
おかげでたくさん!私はほとんどそこにいるようです:質問は100%正確ではありませんでした。私は、複数行のHTMLファイルで動作するソリューションを探しています。私はコードを調整する方法を見つけようとしていますが、まだ成功していません。それを答えに加えてもよろしいですか? – MattV
@MattV、私は何かが欠けする必要があります申し訳ありませんが、なぜ複数行のファイルに対して、この作品はないのでしょうか?私に知らせて、私は更新します – SWa