Je développe une application WYSIWYG spécifiquement pour l'utilisation de mon entreprise avec intégration personnalisée avec les outils existants de l'entreprise.VB.NET/C# .Net MSHTML: Impossible d'obtenir l'attribut "nom" de Outerhtml après avoir utilisé "setAttribute ('nom', valeur)" pour certains éléments
Je ne pouvais pas obtenir l'attribut "name" de certains éléments lorsque j'essayais d'obtenir la chaîne html en utilisant ".OuterHtml", en particulier l'élément INPUT tag.
Exemple de code:
`Dim inElem as windows.forms.htmlElement = hdoc.CreateElement("INPUT")`
`inElem.Id = "txt01"`
`inElem.setAttribute("name", inElem.Id)`
`inElem.setAttribute("type", "text")`
`inElem.setAttribute("placeholder","text here....")`
'' append the created element to html body
`hdoc.Body.AppendChild(inElem)`
--> Getting html string:
** hdoc.body.getElementById("txt01").OuterHtml => "<input id=txt01 placeholder='text here....'></input>"
--> What I really want is:
** hdoc.body.getElementById("txt01").OuterHtml => "<input id=txt01 placeholder='text here....' type='text' name='txt01'></input>"
Oui, non seulement l'attribut name ont disparu, d'autres aussi. (par exemple TYPE) Quelqu'un pourrait m'aider à ce sujet?
tentative de solution:
For Each inputEle As Windows.Forms.HtmlElement In hdoc.Body.GetElementsByTagName("input")
CType(inputEle.DomElement, mshtml.IHTMLInputElement).name = inputEle.Id
Next
** ** ECHEC :(
SOLUTION ULTIME:
Use HTML Agility Pack:
----------------------
Dim inputEle3 As HtmlAgilityPack.HtmlNode = new_wb.CreateElement("input")
inputEle3.Attributes.Add("id", "txt01")
inputEle3.Attributes.Add("name", inputEle3.Id)
inputEle3.Attributes.Add("type", "text")
inputEle3.Attributes.Add("placeholder", "text here ....")
RESULT:
-------
inputEle3.OuterHtml => <input id="txt01" name="txt01" type="text" placeholder="text here ...." >
Il travaille maintenant, à condition que j'utilise HtmlAgilityPack.dll :( Microsoft mshtml sucks! :(
partager Peut-être un peu plus de code Utilisez-vous un contrôle WebBrowser –
? Oui, j'utilise le contrôle de WebBrowser Codes mis à jour dans le message J'espère que c'est assez clair –