【问题标题】:How to load an XML document using a relative path in VB.net?如何在 VB.net 中使用相对路径加载 XML 文档?
【发布时间】:2010-11-18 09:26:45
【问题描述】:

在 VB.net 中使用 System.Xml.Xmldocument 加载 XML 文档时,有没有一种方法可以指定文件的相对路径?

path = "file.xml"
xmld.Load(path)

我尝试加载的 XML 文档与 VB 类位于同一目录中。但如果不使用 XML 文档的完整路径,我无法访问它。

【问题讨论】:

    标签: xml vb.net


    【解决方案1】:

    仅导入 System.Xml 并尝试...

    Dim xmlDoc As XmlDocument = New XmlDocument
     xmlDoc.Load(Server.MapPath("Divide.xml"))
    

    Divide.xml 显然会被您的 xml 文件名替换。
    来自MSDN,Server.MapPath如下..

    指定相对或虚拟路径 映射到物理目录。如果 路径以正向 (/) 开头 或反斜杠(),MapPath 方法返回一个路径,就好像路径是 完整的虚拟路径。如果路径没有 以斜线开头,MapPath 方法返回相对于 .asp 文件的目录是 已处理。

    【讨论】:

    • 完美!谢谢你,先生! :)
    【解决方案2】:
    Application.StartupPath()
    

    将指向应用程序的执行位置。如果您的 XML 文件的最终构建位置将位于与此不同的目录中,我建议创建一个小型文件管理器类,该类将指向文件的正确位置。这样你就可以简单地调用:

    xmlDoc.Load(myFileMan.FilePath())
    

    并让经理根据调试/发布版本和任何其他潜在的缓解因素来解决正确的路径。

    【讨论】:

    • Application.StartupPath() 属性是 WinForms 特有的,不是吗?
    • 是的,就像 Server.MapPath 特定于 WebForms 一样。您的问题确实没有表明您使用的是哪种类型的应用程序,所以我想在那里折腾替代方案让您知道。
    • 好电话!我忘记了 Server.MapPath 是包含网络表单的。
    【解决方案3】:

    如果在 SSIS 中,那么试试这个:

    'Loading an Xml File from VB'
    
     Dim xmlDoc As XmlDocument = New XmlDocument
     xmlDoc.Load("C:\Test\sample.xml")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 2014-08-03
      • 2018-08-20
      • 2011-02-05
      相关资源
      最近更新 更多