Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是正确的XML语法吗_Xml_Vbscript - Fatal编程技术网

这是正确的XML语法吗

这是正确的XML语法吗,xml,vbscript,Xml,Vbscript,我想知道这是否是一种正确的XML语法,因为我需要使用VBscript删除文档中的一个节点,但我确实无法做到这一点 <?xml version="1.0" encoding="utf-8"?> <dbm> <servers> <server name="PCTEST"> <references> <database name="TES1" path="\C$\Build"/>

我想知道这是否是一种正确的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>

虽然我无法从列表中找到XML文档,但直接输入和检测可以轻松地自动验证XML


编辑:

尽管我无法从列表中找到XML文档,但直接输入和检测可以轻松地自动验证XML


编辑:

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


您可能需要检查文件的编码是否匹配UTF-8:。

看起来不错,但是如果您想要一个方便(免费)的工具来验证和使用XML,这是非常有用的

您可能需要检查文件的编码是否匹配UTF-8:。

它可能是

如果没有模式(如a或a),就不可能确定

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

如果您没有使用模式,或者(更糟的是)您使用的是您自己或您公司的某个人编写的特殊解析器),那么我怀疑您的解析器中存在错误。

它可能是

如果没有模式(如a或a),就不可能确定

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

如果您没有使用模式,或者(更糟的是)您使用的是您自己或您公司的某个人编写的特殊解析器,那么我怀疑您的解析器中存在错误。

尝试以下方法:

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
Set xmldoc=CreateObject(“Microsoft.XMLDOM”)
xmldoc.async=false
xmldoc.loadXml_
"" & _
"" & _
"  " & _
"    " & _
"      " & _
"        " & _
"      " & _
"    " & _
"  " & _
""
“”//删除单个节点
设置nodeToBeRemoved=xmldoc.selectSingleNode(//数据库[@name='TES1'])
如果不是nodeToBeRemoved,那就什么都不是了
nodeToBeRemoved.parentNode.RemoveChild nodeToBeRemoved
如果结束
''//删除多个节点
Set nodesToBeRemoved=xmldoc.selectNodes(//数据库)
对于每个节点,在节点中删除节点删除节点删除节点删除
nodeToBeRemoved.parentNode.RemoveChild nodeToBeRemoved
下一个
''//alert xmldoc.xml
试试这个:

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
Set xmldoc=CreateObject(“Microsoft.XMLDOM”)
xmldoc.async=false
xmldoc.loadXml_
"" & _
"" & _
"  " & _
"    " & _
"      " & _
"        " & _
"      " & _
"    " & _
"  " & _
""
“”//删除单个节点
设置nodeToBeRemoved=xmldoc.selectSingleNode(//数据库[@name='TES1'])
如果不是nodeToBeRemoved,那就什么都不是了
nodeToBeRemoved.parentNode.RemoveChild nodeToBeRemoved
如果结束
''//删除多个节点
Set nodesToBeRemoved=xmldoc.selectNodes(//数据库)
对于每个节点,在节点中删除节点删除节点删除节点删除
nodeToBeRemoved.parentNode.RemoveChild nodeToBeRemoved
下一个
''//alert xmldoc.xml

看起来很好-您遇到了什么问题?我不知道如何从文件中删除数据库节点,然后用vbscript保存,我已经尝试了很久了。所以我想可能节点本身不合法或者什么的。看起来很好-你有什么问题?我不知道如何从文件中删除数据库节点,然后用vbscript保存它,我已经尝试了很久了。因此,我认为节点本身可能不合法或其他什么。谢谢您的工作,但我不确定您是否理解用于选择节点的语法(“//database[@name='TES1']”)。如果我想选择所有数据库节点,如果我有几个,我会只选择SelectNodes(//数据库)?谢谢你的回答,你说得对,
SelectNodes
就可以了;我更新了我的答案以反映这个例子。关于sintax,这是一个
XPath
表达式:谢谢您的工作,但我不确定您是否理解用于选择节点(“//database[@name='TES1']”)的语法。如果我想选择所有数据库节点,如果我有几个,我会只选择SelectNodes(//数据库)?谢谢你的回答,你说得对,
SelectNodes
就可以了;我更新了我的答案以反映这个例子。关于sintax,这是一个
XPath
表达式: