На основании комментариев ОП к опубликованным ответам (и моего любопытства относительно того, почему эта простая вещь не будет работать), вот мое предложение:
Используя выражение XPath, предложенное @ Anthony , я смог успешно загрузить узел комментария с помощью следующей функции 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 "";
}
}
Пример вызова:
SelectComment("<table><length> 12</length><!--Some comment here--></table>");
Выход:
"Some comment here"
Примечания:
а. Ваша версия MSXML может отличаться. Пожалуйста, используйте правильно.
б. Этот вид кода определенно не рекомендуется, потому что он работает только в IE. Однако, поскольку это ваше явно заявленное требование, я использовал ActiveXObject.
с. Вы не упомянули в своих комментариях, что не так в предложенных выражениях XPath. Я предполагаю, что вы не запрашиваете свойство text
найденного узла. Помните, что SelectSingleNode всегда возвращает IXmlNode
, и вам нужно запросить его data
или text
свойств.