Как работать с XML / XPath с asp-classic и анализировать String в XML-документе - PullRequest
0 голосов
/ 10 января 2012

Как лучше всего читать XML Xpath с помощью asp-classic из String Request Param.

  <%    function FReadXml(pStringXml) 
  {
      var xDom = new ActiveXObject("MSXML2.DOMDocument");
      var a = xDom.LoadXML(pStringXml)
      return a;
   }
var xml = Request.QueryString("xml").item;
try{
  var dom = FReadXml(xml);
  //work with xpath
 }catch(ex0){
  Response.Write("problems when read a xml: " + ex0.message);
 }

%>

Спасибо, большое.

1 Ответ

1 голос
/ 10 января 2012

я не знаю, что вы хотите сказать с помощью parse String to xml Document , но я могу помочь вам в части использования Xpath

, вы можете загрузить один узел, используяXPath с SelectSingleNode ({выражение XPath})

var xmlDoc = Server.CreateObject("Msxml2.DOMDocument.6.0");
var currNode;
xmlDoc.async = false;
xmlDoc.load("books.xml");
if (xmlDoc.parseError.errorCode != 0) {
   var myErr = xmlDoc.parseError;
   Response.write("You have error " + myErr.reason);
} else {
   xmlDoc.setProperty("SelectionLanguage", "XPath");
   currNode = xmlDoc.selectSingleNode("//book/author");
   Response.write(currNode.text);
}

или с использованием SelectNodes ({выражение XPath})

var xmlDoc = Server.CreateObject("Msxml2.DOMDocument.3.0");
var objNodeList;
xmlDoc.async = false;
xmlDoc.load("hello.xsl");
if (xmlDoc.parseError.errorCode != 0) {
   var myErr = xmlDoc.parseError;
   Response.write("You have error " + myErr.reason);
} else {
   xmlDoc.setProperty("SelectionNamespaces",    "xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");
   xmlDoc.setProperty("SelectionLanguage", "XPath");
   objNodeList = xmlDoc.documentElement.selectNodes("//xsl:template");
   Response.write(objNodeList.length);
}

, которые вы можетесм. также эту ветку:

StackOverflow - Как я могу получить узлы XML из этого XML в классическом ASP (MSXML)?

Редактировать: Что касается анализа строки XML в документе MSXML, есть способ, который вы указали в своих комментариях boolValue = oXMLDOMDocument.loadXML (bstrXML); это простой способ создать собственную XML-строку и манипулировать

Пример:

var xmlDoc = Server.CreateObject("Msxml2.DOMDocument.3.0");
xmlDoc.async = false;
xmlDoc.loadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>");
if (xmlDoc.parseError.errorCode != 0) {
   var myErr = xmlDoc.parseError;
   Response.Write("You have error " + myErr.reason);
} else {
   Response.Write(xmlDoc.xml);
}
...