【发布时间】:2010-10-06 21:24:17
【问题描述】:
它是一个 .vbproj,看起来像这样
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>15a7ee82-9020-4fda-a7fb-85a61664692d</ProjectGuid>
我想要得到的只是 ProjectGuid,但是当有命名空间时它不起作用......
Dim xmlDoc As New XmlDocument()
Dim filePath As String = Path.Combine(mDirectory, name + "\" + name + ".vbproj")
xmlDoc.Load(filePath)
Dim value As Object = xmlDoc.SelectNodes("/Project/PropertyGroup/ProjectGuid")
我能做些什么来解决这个问题?
【问题讨论】:
-
annakata 的解决方案有两个问题:1. 丑陋,2. 在这种情况下,它可以使用,但如果 'ProjectGuid' 元素属于多个命名空间并且我们想要仅来自单个命名空间的元素。使用 NamespaceManager 的解决方案更好
-
必须为 XPath 引擎提供正确的静态上下文,其中包含前缀和 NS URI 之间的绑定,以便在评估表达式时使用,否则您将无法引用命名空间内的内容。这就是@Teun 所做的。
标签: xml vb.net xpath xml-namespaces