Dựa trên nhận xét của OP câu trả lời đăng (và tò mò của tôi là tại sao điều đơn giản này sẽ không hoạt động), đây là đề xuất của tôi:
Sử dụng biểu thức XPath được đề xuất bởi @Anthony, tôi có thể tải thành công nút nhận xét bằng hàm JS sau:
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 "";
}
}
mẫu gọi:
SelectComment("<table><length> 12</length><!--Some comment here--></table>");
Output:
"Some comment here"
Ghi chú:
a. Phiên bản MSXML của bạn có thể khác nhau. Vui lòng sử dụng một cách thích hợp.
b. Loại mã này chắc chắn không được khuyến nghị vì nó chỉ hoạt động trên IE.Tuy nhiên, vì đây là yêu cầu được khai báo rõ ràng của bạn, tôi đã sử dụng ActiveXObject.
c. Bạn chưa đề cập trong nhận xét của mình những gì không thành công trong các biểu thức XPath được đề xuất. Tôi đoán là bạn không truy vấn thuộc tính text
của nút đã truy xuất. Hãy nhớ rằng SelectSingleNode luôn trả về một IXmlNode
và bạn cần phải truy vấn thuộc tính data
hoặc text
của nó.
Tôi đang sử dụng MSXML DOM ActiveX và lệnh này có vẻ không thành công ... Bất kỳ ý tưởng nào tại sao? – Manoj
Không, tôi không biết tại sao. Đã hơn 7 năm kể từ lần cuối tôi sử dụng thư viện MSXML ... –
Chắc chắn gốc xpath của bạn là ok? Hãy thử "// comment()" để chắc chắn. – annakata