我想知道,如果可以选择所有孙子的所有节点,而没有他们的父节点。
<shelf>
<book name="Moby Dick">
<price>4.50$</price>
</book>
<book name="Hamlet">
<price>5$</price>
</book>
<book name="Faust">
<price>12$</price>
</book>
</shelf>
在这个例子中,我想要一个包含价格的列表。我的问题是我需要从“架子”-axis访问它们。
我尝试了以下代码,但没有成功。
Set xmlPrices = xmlDoc.SelectNodes("/shelf/book//price")
所以我想要一个只有价格的节点列表。
<price>4.50$</price>
<price>5$</price>
<price>12$</price>
感谢您的帮助。
答案 0 :(得分:0)
尝试使用XML Linq。我使代码非常强大,可以处理大多数问题。
$sql="select * from villa where rate='$rate' and bedroom='$bed'";
答案 1 :(得分:0)
我认为你的XPath查询很好 - 这是一个有效的例子:
Option Explicit
Sub Test()
Dim strXml As String
Dim objXmlParser As New MSXML2.DOMDocument60
Dim strXPath As String
Dim intCounter As Integer
Dim objXmlNodes As IXMLDOMNodeList
Dim strNodeValue As String
'sample xml
strXml = ""
strXml = strXml & "<shelf>"
strXml = strXml & "<book name=""Moby Dick""><price>4.50$</price></book>"
strXml = strXml & "<book name=""Hamlet""><price>5$</price></book>"
strXml = strXml & "<book name=""Faust""><price>12$</price></book>"
strXml = strXml & "</shelf>"
'load to parser
objXmlParser.LoadXML strXml
'query document with XPath
strXPath = "/shelf/book//price"
Set objXmlNodes = objXmlParser.SelectNodes(strXPath)
'iterate output nodes and access properties
For intCounter = 0 To objXmlNodes.Length - 1
strNodeValue = objXmlNodes.Item(intCounter).Text
Debug.Print strNodeValue
Next intCounter
End Sub