2009-08-10 4 views
1

В VB.net при загрузке в XML-документах с использованием System.Xml.Xmldocument существует ли способ указать относительный путь к файлу?Как загрузить документ XML с использованием относительного пути в VB.net?

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

Документ XML, который я пытаюсь загрузить, находится в том же каталоге, что и класс VB. Но у меня возникли проблемы с доступом к нему, не используя полный путь к XML-документу.

ответ

2

Импорт только System.Xml и попробовать ...

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

Divide.xml, очевидно, будет заменен на имя вашего XML-файла.
Из MSDN, Server.MapPath выглядит следующим образом ..

Задает относительный или виртуальный путь для отображения на физический каталог. Если Путь начинается либо с прямой (/) , либо с обратной косой чертой(), метод MapPath возвращает путь, как если бы путь был полным, виртуальным путем. Если путь не начинается с косой черты, метод MapPath возвращает путь к каталогу файла .asp, который обрабатывается .

+0

Отлично! Спасибо, сэр! :) – Chiramisu

0
Application.StartupPath() 

укажут исполняющему место приложения. Если конечное место сборки для вашего XML-файла будет в каталоге, отличном от этого, я рекомендую создать небольшой класс диспетчера файлов, который укажет на правильное расположение файла. Таким образом, вы можете просто позвонить:

xmlDoc.Load(myFileMan.FilePath()) 

и позволить менеджеру решить правильный путь, основанный на отладки/сборки релиза и любых других возможных смягчающих факторов на него.

+0

Свойство Application.StartupPath() специфично для WinForms, нет? – Chris

+0

Верно, как Server.MapPath специфичен для WebForms. Ваш вопрос действительно не указывал, какой тип приложения вы используете, поэтому я хотел бросить альтернативу, чтобы вы знали. –

+0

Хороший звонок! Я забыл, что Server.MapPath - это веб-формы включительно. – Chris

0

Если в SSIS, попробуйте следующее:

'Loading an Xml File from VB' 

Dim xmlDoc As XmlDocument = New XmlDocument 
xmlDoc.Load("C:\Test\sample.xml")