XSL定义用于转换的复杂(非标准)XML属性

时间:2012-08-22 06:06:54

标签: xml xslt

您好我有一个xml,我正在使用XSL模板进行转换。 问题是存储在其中的许多属性似乎导致我的转换失败。有没有办法预定义这些属性/名称空间前缀,以便转换可以继续停止,我必须手动删除有问题的名称?

我正在使用Satimage xmlLib进行转换。

例如:

<ConstantValue>
     <Value abc:actualType="Int32">2</Value>
</ConstantValue>

<OperationDefinition abc:uid="urn:uuid:f9ff09d2-cc85-3d29-a982-a8776842dac0">
   <OperationInputCount>2</OperationInputCount>
</OperationDefinition>

我在元素名称中也有一个带冒号的元素,这会破坏转换。

 <this:AppCode>14</this:AppCode>

为了我的转换,我不需要保留这些属性,只需要保留元素内的值。

非常感谢,

1 个答案:

答案 0 :(得分:0)

在核心XML中允许使用冒号的名称,但在名称空间良好的XML中不允许使用冒号的名称,除非将冒号前的部分正确声明为名称空间前缀。 XSLT和几乎所有其他现代XML应用程序都要求XML是命名空间良好的形式,因此除非您首先转换它,否则您将无法使用XSLT处理此XML。例如,您可以通过将所有冒号更改为点或下划线来转换它。