【发布时间】:2014-11-10 12:30:11
【问题描述】:
我已经看到了一些其他类似答案的答案,但我无法完全理解它。我有一个以属性为中心的 XML 文件,我需要将其导入 Access,它只接受以元素为中心的格式。似乎我需要对 XSL 文件进行转换,但我不清楚该怎么做。由于数据是专有的,我用科幻主题伪装了它。我需要做的是将第一个代码示例转换为与第二个相同的格式:
<PLANETARY Protocol="Solar 1">
<COLONIES>
<COLONYDATA site="10001" planet="Mars">
<RESOURCEDATA resource="RadiationDanger" value="Low" />
<RESOURCEDATA resource="ApplicantColonists" value="11" />
<RESOURCEDATA resource="AcceptedColonists" value="3" />
</COLONYDATA>
<COLONYDATA site="10002" planet="Mars">
<RESOURCEDATA resource="RadiationDanger" value="Low" />
<RESOURCEDATA resource="ApplicantColonists" value="7" />
<RESOURCEDATA resource="AcceptedColonists" value="1" />
</COLONYDATA>
<COLONYDATA site="11019" planet="Titan">
<RESOURCEDATA resource="RadiationDanger" value="Low" />
<RESOURCEDATA resource="ApplicantColonists" value="22" />
<RESOURCEDATA resource="AcceptedColonists" value="16" />
</COLONYDATA>
</COLONIES>
</PLANETARY>
<Protocol>
Solar1
<COLONIES>
<COLONYDATA>
<site>10001</site>
<planet>Mars</planet>
<RadiationDanger>Low</RadiationDanger>
<ApplicantColonists>11</ApplicantColonists>
<AcceptedColonists>3</AcceptedColonists>
</COLONYDATA>
<COLONYDATA>
<site>10002</site>
<planet>Mars</planet>
<RadiationDanger>Low</RadiationDanger>
<ApplicantColonists>7</ApplicantColonists>
<AcceptedColonists>1</AcceptedColonists>
</COLONYDATA>
<COLONYDATA>
<site>11019</site>
<planet>Titan</planet>
<RadiationDanger>Low</RadiationDanger>
<ApplicantColonists>22</ApplicantColonists>
<AcceptedColonists>16</AcceptedColonists>
</COLONYDATA>
</COLONIES>
</Protocol>
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
您必须小心这一点,因为如果其中一个资源属性包含不是有效元素名称的字符串,您将收到致命错误。
-
感谢您的提示。在无效字符串方面我应该特别注意什么?
-
来自规范:“名称的第一个字符必须是NameStartChar,其他任何字符都必须是NameChars;” -- Short (unofficial) version:标签名称不能包含任何字符
!"#$%&'()*+,/;<=>?@[\]^`{|}~,也不能包含空格字符,并且不能以-、.或数字开头。 -
啊,谢谢。这就解释了为什么我在协议名称中有空格时遇到问题。
标签: xml xslt ms-access-2013