У меня проблема с оценкой выражения XPath в Windows Script Host при использовании JScript
присутствует в верхней части документа. Когда я удаляю DOCTYPE, синтаксический анализ не прерывается. Вот пример кода, который я использую для анализа и загрузки XML. Есть ли способ проанализировать этот вид XML без удаления объявления DOCTYPE.
Я не хочу удалять DOCTYPE во время обработки. Решением может быть удаление DOCTYPE с помощью Regex
<!DOCTYPE.*?>/gm;
но я не хочу такого решения.
var XmlDocument;
try {
XmlDocument = new ActiveXObject("msxml2.DOMDocument.6.0");
XmlDocument.async = false;
XmlDocument.resolveExternals = false;
XmlDocument.validateOnParse = false;
} catch(e) {
if(debug == true)
WScript.echo("***ERROR while creating DOM Object: " + e.description);
}
// Load an XML file into the DOM instance
try {
XmlDocument.load(filePath);
} catch(e) {
if(debug == true)
WScript.echo("***ERROR LOADING FILE: " + e.description);
}
var Node;
try {
Node = XmlDocument.selectSingleNode("//metadata/url");
} catch(e) {
if(debug == true)
WScript.echo("***ERROR RESOLVING NODE: " + e.description);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rightinclude SYSTEM "http://localhost/iw/aa.dtd">
<a>
<b>
<c>/someurl.html</c>
</b>
</a>