VB6中的代码(XML文件)
我的xml文件如下
<book>
<name>x1</name>
<price>1<price>
<name>x2</name>
<name>x3</name>
<price>2<price>
</book>
根节点是书
Set nodlist = xmlDoc.selectNodes("/Book/Price")
它仅选择 1 个节点,其余节点被忽略
我想让所有节点命名为price.
VB6中的代码(XML文件)
我的xml文件如下
<book>
<name>x1</name>
<price>1<price>
<name>x2</name>
<name>x3</name>
<price>2<price>
</book>
根节点是书
Set nodlist = xmlDoc.selectNodes("/Book/Price")
它仅选择 1 个节点,其余节点被忽略
我想让所有节点命名为price.
Set nodlist = xmlDoc.selectNodes("/Book/Price")
XPath 是 CAse senSitiVe ——在提供的 XML 文档中没有命名Book或节点。Price因此上述方法调用必须返回一个空的XmlNodeList。
你要:
Set nodlist = xmlDoc.selectNodes("/book/price")
1/正如JP在 OP 的评论中发现的那样,您的第二个price节点未正确关闭。
该selectNodes()方法使用 XPath 选择器(语法、教程),对吗?
2/正如Dimitre所说,XPath 区分大小写,因此/Book/Price如果您的实际元素是bookand则无效price。应该是/book/price。
但是,如果将第一个price节点返回给您,则很可能您的选择器实际上是小写的/book/price,并且您的问题很可能来自price未正确关闭的第二个节点。
3/最后,你确定这真的book是你的 XML的根节点吗?你没有父母之类的吗?bookstore
如果您的选择器具有形式/book/price(一开始只有一个斜杠),它是一个绝对路径,那么它应该选择确实选择price的所有元素book,但只有给定book的是(只有非常单一的)根节点(没有其他book显然,在您的文档中,因为您不能在一个文档中有多个根,并且根本没有父)。
试试这个:
book/price应该为文档price的所有节点返回所有节点bookprice应该返回所有price节点,无论它们是整个文档中的父节点如果您有另一个根,例如bookstore,或者library想要使用绝对路径,请尝试:
/bookstore/book/price(或者/library/book/price,或者你的实际根节点是什么)此外,您可以尝试使用类似的方式访问您的节点,具体取决于您在 XML 树中的位置或位置:
//book/price//price