如何在vb 2015中使用变量用于xml属性值?

时间:2017-02-24 13:25:03

标签: visual-studio xpath xml-parsing

我想知道我是否可以在选择节点语句ex:

时使用变量
Pgs = xmldoc.SelectNodes("/* [@Id = 160578]")

我需要用变量替换这个160578号​​码吗?

1 个答案:

答案 0 :(得分:0)

天真(并且易于注射)是字符串操作,例如xmlDoc.SelectNodes(String.Format("/*[@Id = {0}]", yourVariable))。正确的方法是使用SelectNodes的第二个参数,并在XsltContext https://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltcontext(v=vs.110).aspx的实现中实现变量解析。项目https://mvpxml.codeplex.com/releases/view/4894有一个类DynamicContext这样做,虽然该项目是用C#完成的,你当然可以用VS编译它并将API集成到你的VB代码中:

Dim idVar As Double = 160578
Dim dynContext As New DynamicContext
dynContext.AddVariable("id", idVar)
Pgs = xmldoc.SelectNodes("/*[@Id = $id]", dynContext)