J'ai plus de 1 000 entrées de base de données qui contiennent des balises d'image html. Le problème est que 90% des attributs 'src' ne sont que des espaces réservés. J'ai besoin de remplacer tous ces espaces réservés par les vraies sources appropriées.Remplacement d'attributs dans une balise d'image html
Une entrée de base de données typique ressemble à ceci (la quantité d'étiquettes d'image varient d'entrée à l'entrée):
<p>A monster rushes at you!</p>
Monster:<p><img id="d8fh4-gfkj3" src="(image_placeholder)" /></p>
<br />
Treasure: <p><img id="x23zo-115a9" src="(image_placeholder)" /></p>
Please select your action below:
</br />
En utilisant les ID dans les balises d'image ci-dessus, 'd8fh4-gfkj3' & « x23zo-115a9 ', Je peux interroger une autre fonction pour obtenir les "vraies" sources pour ces images.
J'ai essayé d'utiliser HtmlAgilityPack et est venu avec cette (ci-dessous):
Dim doc As New HtmlDocument()
doc.LoadHtml(encounterText)
For Each imgTag As HtmlNode In doc.DocumentNode.SelectNodes("//img")
'get the ID
Dim imgId As HtmlAttribute = imgTag.Attributes("id")
Dim imageId As String = imgId.Value
'get the new/real path
Dim newPath = getMediaPath(imageId)
Dim imgSrc As HtmlAttribute = imgTag.Attributes("src")
'check to see if the <img> tag "src" attribute has a placeholder
If imgSrc.Value.Contains("(image_placeholder)") Then
'replace old image src attribute with 'src=newPath'
End If
Next
Mais je ne peux pas comprendre comment remplacer réellement l'ancienne valeur par la nouvelle valeur.
Y a-t-il un moyen de faire cela avec le HtmlAgilityPack?
Merci!