Sulla base delle osservazioni del op per risposte distaccati (e la mia curiosità sul motivo per cui questa cosa semplice non avrebbe funzionato), ecco il mio suggerimento:
Utilizzando l'espressione XPath suggerita da @Anthony, sono riuscito a caricare il nodo di commento con la seguente funzione JS:
function SelectComment(s)
{
var xDoc = new ActiveXObject("MSXML2.DOMDocument.6.0");
if (xDoc)
{
xDoc.loadXML(s);
var selNode = xDoc.selectSingleNode("/table/length/following::comment()[1]");
if (selNode != null)
return selNode.text;
else
return "";
}
}
Esempio invocazione:
SelectComment("<table><length> 12</length><!--Some comment here--></table>");
uscita:
"Some comment here"
Note:
a. La tua versione MSXML può variare. Si prega di utilizzare in modo appropriato.
b. Questo tipo di codice è decisamente sconsigliato perché funziona solo su IE.Tuttavia, poiché questo è il tuo requisito esplicitamente dichiarato, ho utilizzato ActiveXObject.
c. Non hai menzionato nei tuoi commenti ciò che non funziona nelle espressioni XPath suggerite. La mia ipotesi è che non si sta interrogando la proprietà text
del nodo richiamato. Tieni presente che SelectSingleNode restituisce sempre un valore IXmlNode
ed è necessario interrogare le sue proprietà data
o text
.
Sto usando MSXML DOM ActiveX e questo comando sembra non riuscire ... Qualche idea sul perché? – Manoj
No, non ho idea del perché. Sono passati più di 7 anni dall'ultima volta che ho usato le librerie MSXML ... –
Sicuramente la root di xpath è ok? Prova "// comment()" per essere sicuro. – annakata