【发布时间】:2016-05-19 13:19:14
【问题描述】:
我有一个 XML,我需要将其转换为固定宽度样式的文本文件,并且必须使用 XSLT 方法来完成。
我是第一次使用 XSLT 用户,我对基础知识有了一定的了解,但是这个源 XML 的某些方面使它变得困难......至少对我来说是这样。
<Prescription>
<Drugs>
<Drug id="1">
<DrugName>Red Tablets</DrugName>
</Drug>
<Drug id="2">
<DrugName>Blue Tablets</DrugName>
</Drug>
</Drugs>
<Patients>
<Patient id="20">
<Surname>Doe</Surname>
<Forenames>John</Forenames>
<Items>
<Item>
<ProductID>1</ProductID>
<AdminEvent date="2016-05-11" hour="7" qty="1"/>
<AdminEvent date="2016-05-12" hour="7" qty="1"/>
</Item>
</Items>
</Patient>
<Patient id="50">
<Surname>Doe</Surname>
<Forenames>Jane</Forenames>
<Items>
<Item>
<ProductID>2</ProductID>
<AdminEvent date="2016-05-11" hour="7" qty="1"/>
<AdminEvent date="2016-05-12" hour="7" qty="1"/>
</Item>
</Items>
</Patient>
<Patients>
这是一个包含 2 种药物和两个患者的处方。患者 John 早上 7 点服用 Red Tablets 2 天,Jane 服用 Blue Tablets。我需要把它变成一个纯文本文件,比如:
[ForeName]+[Surname]+[DrugName]+[DrugID]+[Hour]+[Qty]+[Date]
所以在这个例子中:
John Doe Blue Tablets 1 7 1 2016-05-11
John Doe Blue Tablets 1 7 1 2016-05-12
Jane Doe Red Tablets 2 7 1 2016-05-11
Jane Doe Red Tablets 2 7 1 2016-05-12
我对以下概念感到困惑: a) 引用不同的分支(EG 从 Item 元素回溯到 Drug) b) 仅在 Item 部分中获取 ID 的 DrugName
希望这一切都有意义!
【问题讨论】:
-
那些
id值在整个XML 文档中是唯一的吗?还是仅在Prescription元素内(假设单个 XML 文档中可以有多个)? -
固定宽度是提前知道的,还是你只是想根据列中最长的单词来对齐?应该将名字/姓氏连接起来还是两个单独的列?