【发布时间】:2018-12-13 19:29:31
【问题描述】:
下午好, 我对 XML 和 XSLT 非常陌生,我正在尝试将下面的第一个 XML 转换为下面的第二个 XML。任何帮助,将不胜感激。 XML 用于数据馈送,因此它需要保持与原始格式相同的格式,但我需要它为每个“Questionnaire_ID”的每个“Document_to_be_Requested”创建一个单独的“项目”。
原创
<?xml version="1.0" encoding="utf-8"?>
<ex:Record xmlns:ex="http://archertech.com/Print/Export">
<ex:Item>
<ex:Questionnaire_ID>1007</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 1</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>A</ex:Item>
<ex:Item>C</ex:Item>
<ex:Item>D</ex:Item>
<ex:Item>F</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
<ex:Item>
<ex:Questionnaire_ID>1009</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 2</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>A</ex:Item>
<ex:Item>B</ex:Item>
<ex:Item>F</ex:Item>
<ex:Item>G</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
</ex:Record>
希望
<?xml version="1.0" encoding="utf-8"?>
<ex:Record xmlns:ex="http://archertech.com/Print/Export">
<ex:Item>
<ex:Questionnaire_ID>1007</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 1</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>A</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
<ex:Item>
<ex:Questionnaire_ID>1007</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 1</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>C</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
<ex:Item>
<ex:Questionnaire_ID>1007</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 1</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>D</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
<ex:Item>
<ex:Questionnaire_ID>1007</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 1</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>F</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
<ex:Item>
<ex:Questionnaire_ID>1009</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 2</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>A</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
<ex:Item>
<ex:Questionnaire_ID>1009</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 2</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>B</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
<ex:Item>
<ex:Questionnaire_ID>1009</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 2</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>F</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
<ex:Item>
<ex:Questionnaire_ID>1009</ex:Questionnaire_ID>
<ex:Target>
<ex:Item>Company 2</ex:Item>
</ex:Target>
<ex:Document_to_be_Requested>
<ex:Item>G</ex:Item>
</ex:Document_to_be_Requested>
</ex:Item>
</ex:Record>
提前致谢!
【问题讨论】:
-
这不是编码服务。如果您有特定的问题或困难,请向我们展示您所做的并指出。 -- 请注意,您显示的输入不是格式良好的 XML,并且根本无法由 XSLT 处理(没有单个根元素,并且前缀未绑定到命名空间)。
-
根被切断了,和第二个一样
-
你能不能至少给我一个关于从哪里开始的提示。我已经尝试了 2 天,但我显然误解了有关 XSLT 的一些东西,它会阻止 if 工作。
-
这对我来说似乎很基本:为每个
ex:Item/ex:Document_to_be_Requested/ex:Item创建一个项目并从祖先ex:Item节点复制一些节点。 -