Devo analizzare una pagina HTML generata da CMS e aggiungere tag di elementi di elenco attorno a qualsiasi nodo HTMLAgiligyPack con un nodo figlio che abbia un attributo di nome "Esempio".
Codice C #
HtmlDocument doc = new HtmlDocument();
doc.Load("test.htm");
foreach (HtmlNode docObjects in doc.DocumentNode.SelectNodes("//object[@type='text/sitemap']"))
{
HtmlNodeCollection paramNodes = docObjects.ChildNodes;
foreach (HtmlNode paramNode in paramNodes)
{
string paramName = paramNode.GetAttributeValue("name", null);
string paramValue = paramNode.GetAttributeValue("value", null);
HtmlNode findItem = paramNode.NextSibling;
if (paramName == "Example")
{
//Add listitem (<li>) tags to the paramName node
}
}
}
test.htm
<OBJECT type="text/sitemap">
<param name="Example" value="Help.chm::\toc.hhc">
</OBJECT>
<OBJECT type="text/sitemap">
<param name="Example" value="Help2.chm::\toc.hhc">
</OBJECT>
<OBJECT type="text/sitemap">
<param name="Example" value="Help3.chm.chm::\toc.hhc">
</OBJECT>
deve essere
<li><OBJECT type="text/sitemap">
<param name="Example" value="Help.chm::\testing.htm">
</OBJECT></li>
<li><OBJECT type="text/sitemap">
<param name="Example" value="Help2.chm::\testing.htm">
</OBJECT></li>
<li><OBJECT type="text/sitemap">
<param name="Example" value="Help3.chm::\testing.htm">
</OBJECT></li>
Qualsiasi assistenza che puoi fornire sarebbe molto apprezzata. Questo fa parte di un progetto più ampio su cui sto lavorando e probabilmente chiederò aiuto in futuro. Hai bisogno di un corso accelerato in C # - grazie a tutti in anticipo.
Ecco un modo (il codice rientra nella tua clausola if
):
var objectNode = paramNode.ParentNode;
var li = doc.CreateElement("li");
objectNode.Remove();
li.AppendChild(objectNode);
doc.DocumentNode.AppendChild(li);