2012-07-27 55 views
0

我有一个从数据库中提取的XML文件,并且使用Excel创建了多行来显示个人的不同数字,我希望将这些行转换为多列。所以当有人看着那个人时,他们只需要滚动到右边看数字。如何创建一个xml模式,该模式将从xml文件获取数据并将行转置为列?

当前每行按1-27排列在数字左边的一列中,我希望使这些列中的标题具有相应的数字。

以下是数据库输出的XML文件的示例。

<B15C> 
    <PP nbr="1"> 
     <AMT>55555</AMT> 
     </PP> 
     <PP nbr="2"> 
      <AMT>4561</AMT> 
     </PP> 
     <PP nbr="3"> 
      <AMT>5646354</AMT> 
     </PP> 
     <PP nbr="4"> 
      <AMT>321546</AMT> 
     </PP> 
     <PP nbr="5"> 
      <AMT>221321</AMT> 
     </PP> 
     <PP nbr="27"> 
      <AMT>3110.41</AMT> 
     </PP> 
</B15c> 

这里是输出这个数据

<xs:element name="B15C"> 
<xs:complexType> 
    <xs:sequence> 
     <xs:element maxOccurs="unbounded" name="PP"> 
      <xs:complexType> 
       <xs:sequence> 
        <xs:element name="AMT" type="xs:decimal" /> 
       </xs:sequence> 
       <xs:attribute name="nbr" type="xs:unsignedByte" use="required" /> 
      </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
</xs:complexType> 
</xs:element> 

我是新来的XML架构的一部分的例子,所以我甚至不知道这是否可以做到的。如果除了使用VBA或手动更改XML文件之外,还有其他选择吗?

我有图片,但该网站不会允许我发布它们,因为我是新用户,对不起!

感谢您的帮助

+0

您是否有模式来描述已转换文件的xml,取决于您。但是,如果您想要转换XML文档,并且您不想“硬编码”它。你正在寻找的东西是XSLT,请注意它是一个非常陡峭的学习曲线...... – 2012-07-27 15:39:05

回答

0

一个模式描述了一个XML文件,并验证它是否符合描述。它永远不会改变文件(除了不重要的方式,例如通过添加默认值)。

您想要将一个XML文件转换为另一个XML文件。这个工具就是XSLT。

您已经按照列和行的方式描述了您的XML,但是当我看到它时,我所看到的都是元素。为了帮助您将其转换为不同的XML文件,我们需要知道您希望XML文件看起来像什么 - 就XML而言,而不是以“XML和XML”外部概念中的“行和列”来表示。

+0

谢谢!我不知道转换XML文件所需的XSLT文件。我会马上看看它。 – Ryan 2012-07-31 14:52:58