首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用asp-classic处理XML/XPath并将字符串解析为xml文档

如何使用asp-classic处理XML/XPath并将字符串解析为xml文档
EN

Stack Overflow用户
提问于 2012-01-10 04:37:38
回答 1查看 5.2K关注 0票数 0

用asp从字符串请求参数中读取XML Xpath的最好方法是什么?

代码语言:javascript
复制
  <%    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);
 }

%>

谢谢,非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-10 09:36:38

我不知道你想说什么解析字符串到xml文档,但我可以帮助你使用Xpath的一部分

您可以通过SelectSingleNode({XPath Expression})使用XPath加载单个节点

代码语言:javascript
复制
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 Expression})

代码语言:javascript
复制
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 - How can I get the XML nodes from this XML in classic ASP (MSXML)?

关于如何将字符串解析成MSXML文档有一种方法,就像您在评论中指出的那样,这是一种创建您自己的xml字符串并进行操作的简单方法

示例:

代码语言:javascript
复制
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);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8794866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档