我们正在尝试转换在ECopy共享扫描中完成的扫描作业的XML输出。 XML文件看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<data>
<index id="FileNameField.eCSWHCRequest">eCSWHCRequest</index>
<index id="FileNameField._">_</index>
<index id="FileNameField.Date>08012015"</index>
<index id="Submission By">Josh McMinn</index>
<index id="Department">Admin</index>
<index id="Submission Date (mm/dd/yyyy)">08/01/2015</index>
<index id="Submission For">iPad</index>
<index id="Total Cost">850</index>
</data>
我无法弄清楚如何显示各个索引ID并更改它们的名称。
所需的输出如下所示:
<?xml version="1.0" encoding="utf-8"?>
<data>
<eCSWHCRequest>eCSWHCRequest</eCSWCRequest>
<FileNameField>_</FileNameField>
<Date>08012015</Date>
<SubmissionBy>Josh McMinn</SubmissionBy>
</data>
非常感谢任何帮助
答案 0 :(得分:0)
这是一个让你入门的例子:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/data">
<xsl:copy>
<eCSWHCRequest>
<xsl:value-of select="index[@id='FileNameField.eCSWHCRequest']"/>
</eCSWHCRequest>
<FileNameField>
<xsl:value-of select="index[@id='FileNameField._']"/>
</FileNameField>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
当应用于您的示例输入时(在将其更正为格式良好的XML之后!),结果为:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<eCSWHCRequest>eCSWHCRequest</eCSWHCRequest>
<FileNameField>_</FileNameField>
</data>
注意:强>
</eCSWCRequest>
不关闭<eCSWHCRequest>
。在处理XML时你不能马虎,这是非常无情的。