为什么 selectSingleNode returns 什么都没有?
How come selectSingleNode returns nothing?
我正在尝试 select 一个节点的唯一属性,但是我没有得到任何返回给我的东西。
我在这里检查过:SelectSingleNode returns nothing and here: why does Msxml DocumentElement/SelectSingleNode returns nothing?
我的目标是能够更新其中一个节点属性。
我的 XML 看起来像这样:
<?xml version="1.0"?>
<settings>
<options>
... other nodes here ...
</options>
<selected>
<pref set_number="1" set_name="Five" name="Number" value="5"/>
<pref set_number="3" set_name="Nine" name="Number" value="9"/>
</selected>
</settings>
这是我的潜艇
(我已经评论了我尝试过的)
Sub WriteXMLAttributeValues()
Dim oDoc As New MSXML2.DOMDocument
Dim fSuccess As Boolean = False
Dim oRoot As MSXML2.IXMLDOMNode = Nothing
Dim oAtrb As MSXML2.IXMLDOMElement = Nothing
Dim oLst As MSXML2.IXMLDOMNodeList = Nothing
oDoc.async = False
oDoc.validateOnParse = False
fSuccess = oDoc.load("C:\settings.xml")
'oRoot = oDoc.childNodes("settings").childNodes("selected").attributes("set_number")
'oRoot = oDoc.selectSingleNode("//settings/selected[@set_number='1' and @value='5']")
'oRoot = oDoc.selectSingleNode("//settings/selected[@set_number='1']")
'oAtrb.setAttribute("name", "Twenty")
'oLst = oDoc.selectSingleNode("/settings/selected[@set_number='1']")
'oAtrb.setAttribute("name", "Twenty")
oRoot = oDoc.getElementsByTagName("set_number")
oDoc.save("C:\settings2.xml")
End Sub
我正在尝试将第一个 < pref > 的属性从 "Five" 更改为 "Twenty"
我想知道我做错了什么,以便我可以正确更新属性。
您忘记了路径中的 pref 元素。它应该看起来像这样。
Dim node as XmlNode
node = oDoc.selectSingleNode("//settings/selected/pref[@set_number='1']")
然后您可以像这样更改属性:
node.Attributes("set_name").Value = "Twenty"
我正在尝试 select 一个节点的唯一属性,但是我没有得到任何返回给我的东西。
我在这里检查过:SelectSingleNode returns nothing and here: why does Msxml DocumentElement/SelectSingleNode returns nothing?
我的目标是能够更新其中一个节点属性。
我的 XML 看起来像这样:
<?xml version="1.0"?>
<settings>
<options>
... other nodes here ...
</options>
<selected>
<pref set_number="1" set_name="Five" name="Number" value="5"/>
<pref set_number="3" set_name="Nine" name="Number" value="9"/>
</selected>
</settings>
这是我的潜艇 (我已经评论了我尝试过的)
Sub WriteXMLAttributeValues()
Dim oDoc As New MSXML2.DOMDocument
Dim fSuccess As Boolean = False
Dim oRoot As MSXML2.IXMLDOMNode = Nothing
Dim oAtrb As MSXML2.IXMLDOMElement = Nothing
Dim oLst As MSXML2.IXMLDOMNodeList = Nothing
oDoc.async = False
oDoc.validateOnParse = False
fSuccess = oDoc.load("C:\settings.xml")
'oRoot = oDoc.childNodes("settings").childNodes("selected").attributes("set_number")
'oRoot = oDoc.selectSingleNode("//settings/selected[@set_number='1' and @value='5']")
'oRoot = oDoc.selectSingleNode("//settings/selected[@set_number='1']")
'oAtrb.setAttribute("name", "Twenty")
'oLst = oDoc.selectSingleNode("/settings/selected[@set_number='1']")
'oAtrb.setAttribute("name", "Twenty")
oRoot = oDoc.getElementsByTagName("set_number")
oDoc.save("C:\settings2.xml")
End Sub
我正在尝试将第一个 < pref > 的属性从 "Five" 更改为 "Twenty"
我想知道我做错了什么,以便我可以正确更新属性。
您忘记了路径中的 pref 元素。它应该看起来像这样。
Dim node as XmlNode
node = oDoc.selectSingleNode("//settings/selected/pref[@set_number='1']")
然后您可以像这样更改属性:
node.Attributes("set_name").Value = "Twenty"