首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析XML InnerXML

解析XML InnerXML
EN

Stack Overflow用户
提问于 2012-04-30 03:50:25
回答 2查看 8.6K关注 0票数 3

我喜欢能够像asp.net一样解析这个值,不幸的是,asp经典也像<div>everything within it</div>标签一样返回标签。

我尝试解析路径"/root/div“并返回其中的所有内容,但不包括"<div></div>",结果应该是"<p>abc <span>other span</span></p>

代码语言:javascript
复制
<%
    Set CurrentXML=Server.CreateObject("Microsoft.XMLDOM")
    CurrentXML.LoadXml("<root><div><p>abc <span>other span</span></p></div></root>")'Load string into CurrentXML

    Response.Write("<BR>"&Server.HTMLEncode(CurrentXML.SelectSingleNode("/root/div").XML)) 'I want to return  without the div, the correct result should be <p>abc <span>other span</span></p>
 %>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-30 04:55:03

试试这个:

代码语言:javascript
复制
<%
Option Explicit

    Dim xml: Set xml = Server.CreateObject("MSXML2.DOMDocument.3.0") 
    xml.LoadXml("<root><div>Text Start<p>abc <span>other span</span></p></div></root>")

    Dim sResult: sResult = ""

    Dim node
    For Each node in xml.selectSingleNode("/root/div").childNodes
        sResult = sResult & node.xml
    Next

    Response.Write Server.HTMLEncode(sResult) 

%>

不幸的是,MSXML元素没有innerXml属性。因此,您需要按照示例中的循环来连接每个子节点的xml,以生成元素的内部XML。

票数 2
EN

Stack Overflow用户

发布于 2012-04-30 04:57:48

这应该会让你得到你想要的:

代码语言:javascript
复制
Response.Write("BR>"&Server.HTMLEncode(CurrentXML.SelectSingleNode("/root/div").childNodes.item(0).XML))

我不确定您的确切情况,但在假设之前,您可能希望确保您有子节点,您可以使用:

代码语言:javascript
复制
CurrentXML.SelectSingleNode("/root/div").hasChildNodes ' Should be "True"

祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10375403

复制
相关文章

相似问题

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