Asp classic ASP经典-解析XML InnerXML
我希望能够像asp.net一样解析值,不幸的是,asp classic也会像Asp classic ASP经典-解析XML InnerXML,asp-classic,Asp Classic,我希望能够像asp.net一样解析值,不幸的是,asp classic也会像标记一样返回标记 我试图解析路径“/root/div”并返回其中的所有内容,不包括“”,结果应该是“abc other span” 试试这个: <% Option Explicit Dim xml: Set xml = Server.CreateObject("MSXML2.DOMDocument.3.0") xml.LoadXml("<root><div>Text S
标记一样返回标记
我试图解析路径“/root/div”并返回其中的所有内容,不包括“
”,结果应该是“abc other span
”
试试这个:
<%
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 DOM元素没有innerXml属性。因此,您需要执行循环,例如连接每个子节点的xml,以生成元素的内部xml。这将为您提供所需的内容:
Response.Write("BR>"&Server.HTMLEncode(CurrentXML.SelectSingleNode("/root/div").childNodes.item(0).XML))
我不确定您的具体情况,但您可能希望在假设之前确保您有子节点,您可以使用:
CurrentXML.SelectSingleNode("/root/div").hasChildNodes ' Should be "True"
祝你好运 只有当“div”中包含的HTML片段只包含一个xml子节点时,这种方法才有效。看到我的答案,我已经注入了一个案例,其中也有一个松散的文本节点。嗨,谢谢注意。你说得对,我以给出的特定XML为例回答,这应该考虑在内。谢谢大家,Adi简单解决方案解决了我的问题。非常感谢。
CurrentXML.SelectSingleNode("/root/div").hasChildNodes ' Should be "True"