2014-10-17 61 views
0

多个XML文件时,我有以下XML文件:多余的线条处理与XSLT

File01:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<FirstTag> 
    <SecondTag> 
     <Name>MyName</Name> 
     <Age>Age</Age> 
    </SecondTag> 
</FirstTag> 

File02:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Export> 
    <Module> 
     <Object> 
      <CreatedBy>FullName</CreatedBy> 
      <CreatedOn>2009-07-07</CreatedOn> 
      <Description>SomeDescription</Description> 
     </Object> 
    </Module> 
</Export> 

主文件:

<?xml version="1.0" encoding="UTF-8"?> 
<index> 
    <entry>file01</entry> 
    <entry>file02</entry> 
</index> 

我想使用th将它们结合起来以下xsl:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" indent="yes" /> 

<xsl:template match="index"> 
    <NEW-XML> 
     <xsl:apply-templates select="entry"/> 
    </NEW-XML> 
</xsl:template> 

<xsl:template match="entry"> 
    <xsl:apply-templates select="document(concat(.,'.xml'))"/> 
</xsl:template> 

<xsl:template match="FirstTag/SecondTag"> 
    <FIRST-FILE> 
     <xsl:value-of select="."/> 
    </FIRST-FILE> 
</xsl:template> 

<xsl:template match="Export/Module/Object"> 
    <SECOND-FILE> 
     <xsl:value-of select="."/> 
    </SECOND-FILE> 
</xsl:template> 

</xsl:stylesheet> 

我做转换后,我得到空行。有人能帮助我吗 ? 这是生成的文件:

<?xml version="1.0" encoding="utf-8"?> 
<NEW-XML> 
    <FIRST-FILE> 
     MyName 
     Age 
    </FIRST-FILE> 


     <SECOND-FILE> 
      FullName 
      2009-07-07 
      SomeDescription 
     </SECOND-FILE> 

</NEW-XML> 
+1

你找出空行引起的技术问题,还是我们只是在谈论XML文件的美丽?如果是后者,我不会花费任何精力去除它们。对我来说更让人不安的是,您将文件中的格式良好的XML格式转换为宽松格式的纯文本格式。或者,你是否担心缺乏标签,而不是额外的换行符? – 2014-10-17 09:53:52

回答

0

空行可以通过包括

<xsl:strip-space elements="FirstTag Export Module"/> 

在你的样式表的顶层取下(可能*)。

另外,添加下面的模板:

<xsl:template match="text()[not(normalize-space())]"/> 

我同意马库斯李凯尔特在你的输出格式表示的关切。

-
(*),根据您的具体处理器

+0

FIRST-FILE和SECOND-FILE中的内容对我来说没有意义。我不明白为什么我会使用附加命令删除在我的输入文件或我的模式中不存在的空行。 – 2014-10-17 11:13:19

+0

@LucianFlorea我担心解释需要很长时间,但是空行确实来自您的输入。无论如何,我已经为我的答案增加了另一个选项。 – 2014-10-17 11:23:29

+0

如果他们来自我的意见,那就没问题。我认为这是我XSL中的一个问题。谢谢您的回答。 – 2014-10-17 12:13:04