【问题标题】:How to export and format an XML for records?如何为记录导出和格式化 XML?
【发布时间】:2020-11-09 05:13:16
【问题描述】:

我正在编写 VBA 代码以将每个记录从特定查询导出到单个 XML 文件。
每个 XML 文件都将具有来自 MS Access 查询的“一个”记录,并且每个 XML 文件的保存目标对于查询中找到的每个记录输出都不同。
在查询中,有一个值将具有详细路径,记录应保存在何处。因此,循环将能够根据读取的每条记录将每个 XML 文件保存到目标位置。

我有我的“临时”XML 导出。 (出于本示例的目的,我已将每个值的数据替换为“valueName_here”,但在每个值上,这些值会有所不同。):

'temp' xml 输出:

<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata">
<qryWMC0302a>
<WMCID>18</WMCID>
<ID>176068</ID>
<Title>Title_here</Title>
<TitleSupp>TitleSupp_Here</TitleSupp>
<Date>Date_Here</Date>
<Cast>leadPerformer_here|leadPerformer_here|leadPerformer_here|leadPerformer_here|etc|</Director>
<Overview>Overview_Here</Overview>
<Tagline>Tagline_Here</Tagline>
<Duration>duration_here</Duration>
<StudioID>StudioID_ID</StudioID>
<DataProviderID>DataProviderID_here</DataProviderID>
<MPAARatingID>MPAARatingID_Here</MPAARatingID>
<Rating>Rating_Here</Rating>
<ProviderRating>ProviderRating_Here</ProviderRating>
<MasterTableID>MasterTableID_Here</MasterTableID>
<Studio>studio_here</Studio>
<DataProvider>DataProvider_Here</DataProvider>
<MPAARating>MPAARating_Here</MPAARating>
<PathID01>PathID01_Here</PathID01>
<PathID02>PathID02_Here</PathID02>
<Path03>Path03_Here</Path03>
<Path>Path</Path>
<Pth01LkUp>Pth01LkUp_Here</Pth01LkUp>
<Pth02LkUp>00\Pth02LkUp_Here</Pth02LkUp>
<XMLID>XMLID_Here</XMLID>
<MovieVideo_TS>MovieVideo_TS_here</MovieVideo_TS>
<XMLsmallCoverParams>Path\To\File\Here</XMLsmallCoverParams>
<XMLlargeCoverParams>Path\To\File\Here</XMLlargeCoverParams>
<Folder>Path\To\File\Here</Folder>
<FolderL>Path\To\File\Here</FolderL>
<Chk>Chk_here</Chk>
</qryWMC0302a>
</dataroot>

目标是使最终的 xml 文件看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<METADATA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <NeedsAttribution>true</NeedsAttribution>
  <DvdId>
  </DvdId>
  <MDR-DVD>
    <MetadataExpires>Expiration_Date_And_Time_Here</MetadataExpires>
    <Version>Verion_Number_Here</Version>
    <leadPerformer>leadPerformer_here|leadPerformer_here|leadPerformer_here|leadPerformer_here|etc|</leadPerformer>
    <director>director_Here | director_Here, etc</director>
    <dvdTitle>dvdTitle_here</dvdTitle>
    <MPAARating>MPAARating_Here</MPAARating>
    <dataProvider>dataProvider_here</dataProvider>
    <releaseDate>releaseDate_here</releaseDate>
    <duration>duration_here</duration>
    <genre>genre_here|genre_here|etc</genre>
    <XMLsmallCoverParams>Path\To\File\Here</XMLsmallCoverParams>
    <XMLlargeCoverParams>Path\To\File\Here</XMLlargeCoverParams>
    <studio>studio_here</studio>
    <title>
      <titleNum>Number_Here</titleNum>
      <titleTitle>titleTitle_here</titleTitle>
      <synopsis>Details of the record-film will be here.</synopsis>
      <leadPerformer>leadPerformer_here|leadPerformer_here|leadPerformer_here|leadPerformer_here|etc|</leadPerformer>
      <director>director_Here | director_Here, etc</director>
      <providerRating>providerRating_here</providerRating>
      <studio>studio_here</studio>
      <MPAARating>MPAARating_Here</MPAARating>
      <communityRating>communityRating_here</communityRating>
    </title>
  </MDR-DVD>
</METADATA>

在 'temp' xml 输出中,有一些在 'final' xml 文件中不需要的附加值;但是,VBA 循环中需要一些“附加”值来了解 xml 最终文件的“名称”(每个“最终”xml 文件将始终具有不同的名称)以及“最终”文件所在的路径xml 文件将被导出到(每个“最终”xml 文件将被导出到不同的位置\路径)

我尝试调整工作 xsl(XSLT 样式表)的答案,该 xsl(XSLT 样式表)会将所需元素从我的“临时”xml 文件复制到“最终”格式正确的 xml 文件中,如此处发布的示例所示。
我找到的最接近的:How do I use Access VBA to export to XML with headings for various records?

如何发布 xsl 模板以从“temp”xml 输出中获取输入并复制到“final”xml 文件?

【问题讨论】:

  • 您能否提供“临时”和“最终”的真实样本,因为不清楚字段映射是什么。例如,您在“决赛”中有两次leadPerformer? 来自哪里?为什么 是子元素?

标签: xml vba ms-access export


【解决方案1】:

我在以下链接中找到了信息:

文档可以在以下链接中找到:https://support.ptc.com/help/wnc/r11.2.0.0/en/index.html#page/Windchill_Help_Center/WCCG_BusLogicCust_WorkPackage_XMLTrnsfmSample.html

在该链接上,详细描述了从“临时”文件到“最终”文件所需的每个字段

干杯!

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多