【问题标题】:Can an XML file be included in a Visual Studio 2010 project and then referred to in code?能否将 XML 文件包含在 Visual Studio 2010 项目中,然后在代码中引用?
【发布时间】:2013-05-01 08:40:55
【问题描述】:

是否可以在 Visual Studio 2010 项目中存储一个实际的 XML 文件,然后在代码中引用它?

即。我可以存储一个 XML 文件(参见下面的片段),然后在 XML 数据中引用数据元素吗?如何做到这一点以及如何使用 C# 或 VB 代码引用 XML 数据深处的数据元素?

如果将XML文件添加到项目中,编译时会嵌入到DLL或EXE中吗?如果不是,如何嵌入到DLL或EXE中?

<readReferenceDataResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<readReferenceDataResult xmlns="http://test.website.com/hi/xsd/providermessages/ReadReferenceData/5.6.9">
    <elementReferenceValues>
      <elementName>organisationTypeCode</elementName>
      <referenceSet>
        <referenceCode xmlns="http://test.website.com/hi/xsd/providercore/Elements/5.6.9">1678</referenceCode>
        <referenceDescription xmlns="http://test.website.com/hi/xsd/providercore/Elements/5.6.9">Accupuncture and Eastern Medicine</referenceDescription>
      </referenceSet>
      <referenceSet>
        <referenceCode xmlns="http://test.website.com/hi/xsd/providercore/Elements/5.6.9">6454</referenceCode>
        <referenceDescription xmlns="http://test.website.com/hi/xsd/providercore/Elements/5.6.9">Technical and Laboratory Services</referenceDescription>
      </referenceSet>
      <referenceSet>
        <referenceCode xmlns="http://test.website.com/hi/xsd/providercore/Elements/5.6.9">9782</referenceCode>
        <referenceDescription xmlns="http://test.website.com/hi/xsd/providercore/Elements/5.6.9">Naturopathy and Natural Health</referenceDescription>
      </referenceSet>
      <referenceSet>
        <referenceCode xmlns="http://test.website.com/hi/xsd/providercore/Elements/5.6.9>8557</referenceCode>
        <referenceDescription xmlns="http://test.website.com/hi/xsd/providercore/Elements/5.6.9">Aged Care Services</referenceDescription>

【问题讨论】:

  • 只是为了检查我对您的要求的理解 - 您有一个 XML 文档,其中包含您想要阅读的数据?
  • 我有一个 XML 文档,我想将它包含在我的应用程序中并在代码中读取它。
  • 是的,您可以这样做。如果您想要只读访问,您可以将 xml 文件作为资源嵌入,然后将其作为流读取。如果您需要读/写访问权限,则必须将 xml 维护为单独的文件。
  • @series0ne:你如何将文件作为资源嵌入?
  • 最简单的方法:只需准备一个包含XML-string 的global variable

标签: c# .net xml vb.net visual-studio-2010


【解决方案1】:

如果还没有a resource file (.resx),只需将a resource file (.resx) 添加到您的项目中即可。选择文件作为资源类型并将您的 XML 文件拖入其中并为其命名(如果您不喜欢自动生成的名称)。

这将创建一个嵌入式资源类型,然后您可以通过自动生成的代表资源的类在代码中访问它,例如,如果您的项目名为 Foo 并且您添加一个名为 Resources 的资源文件并添加一个XML 文件资源称为MyData,然后您可以在代码中访问Foo.Resources.MyData 的资源。这会将文件的内容公开为字符串,然后您可以在需要时使用XmlDocument.LoadXml 将其加载到XmlDocument 对象中。

【讨论】:

    【解决方案2】:

    听上去,我能想到的最佳解决方案是使用XmlDocument

    您使用XmlDocument 来保存您要读取的 XML 文件,然后您可以从那里检索元素/节点。

    如果您想要更快一些,您也可以使用Linq to XML,它既好用又简单。

    最后,如果您有内存限制/不想将整个文档加载到内存中以经常读取它,您可以使用XmlReader。它允许您直接从文件中逐个节点地读取它。然而,它只是向前的,使用起来有点棘手。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多