这是一个正确的XML语法

时间:2010-02-02 15:11:27

标签: xml vbscript

我想知道这是否是一个正确的XML语法,因为我需要使用VBscript删除本文档中的节点,我真的无法做到。

<?xml version="1.0" encoding="utf-8"?>
<dbm>
  <servers>
    <server name="PCTEST">
      <references>
        <database name="TES1" path="\C$\Build"/>
      </references>
    </server>
  </servers>
</dbm>

4 个答案:

答案 0 :(得分:2)

试试这个:

Set xmldoc = CreateObject("Microsoft.XMLDOM")
xmldoc.async = false
xmldoc.loadXml _
  "<?xml version='1.0' encoding='utf-8'?>" & _
  "<dbm>" & _
  "  <servers>" & _
  "    <server name='PCTEST'>" & _
  "      <references>" & _
  "        <database name='TES1' path='\C$\Build'/>" & _
  "      </references>" & _
  "    </server>" & _
  "  </servers>" & _
  "</dbm>"

''// Removing a single node
Set nodeToBeRemoved = xmldoc.selectSingleNode("//database[@name='TES1']")
If Not nodeToBeRemoved Is Nothing Then
   nodeToBeRemoved.parentNode.RemoveChild nodeToBeRemoved
End if

''// Removing multiple nodes
Set nodesToBeRemoved = xmldoc.selectNodes("//database")
For Each nodeToBeRemoved In nodesToBeRemoved
    nodeToBeRemoved.parentNode.RemoveChild nodeToBeRemoved
Next

''// alert xmldoc.xml

答案 1 :(得分:1)

可能 是。

没有架构(如xsddtd),我们无法确定。

一些解析器/操纵器针对模式进行验证,有时它们被配置为使用外部模式,这意味着您的程序可能(比您想象的更早)加载一些模式并且无法删除您的请求或者以架构不允许的方式操纵文档。

如果您没有使用架构,或者(更糟糕的是)您正在使用您或您公司的某个人写过的临时解析器,那么我怀疑您的解析器中存在错误。

答案 2 :(得分:0)

虽然我无法从列表中找到XML文档,但带检测功能的Direct Input可以轻松自动验证XML。

修改:http://validator.w3.org/

答案 3 :(得分:0)

它看起来不错但是如果你想要一个方便(免费)的工具来验证和使用XML,Microsoft's XML Notepad非常有用。

您可能想要检查的一件事是您的文件编码与UTF-8匹配:http://www.w3schools.com/XML/xml_encoding.asp