0
我有一个将输入XML节点映射到另一个节点(它不使用XSLT)的映射器实用程序。在运行时,它会遍历XML节点并将其转换。光荣的节点到节点转换器,但效率不高,并有一个我们无法克服的性能障碍。最好的部分是它编写一个定义文件,列出入站XML元素及其相应的转换名称。我想在.NET中编写一个工具,它将读取此定义文件并自动生成一个XSLT。一旦它生成XSLT,我就可以使用XSLTC进行编译,并在我的Web应用程序中使用反射将其包含在运行时转换中。任何想法,指导,可用来实现这一目标的建议或工具是非常赞赏自动生成XSL文件
下面是一个过度简化的例子
<order><order_id>12345</order_id><customer>Cust1</customer></order>
定义文件
[Header]
order=customer_order
[Fields]
order_id=order_number
customer=customer_number
工具运行使用定义文件转换并在转换后生成下面的xml
<customer_order><order_number>12345</order_number><customer_number>Cust1</customer_number></customer_order>
可能已经知道,但为了以防万一,确保当前的效用 - 或者你打造一个 - 使用StringBuilder类,而不是连接字符串。可以做出100倍的差异(荣耀的猜测,但我打赌不远)。 – FastAl 2011-06-10 02:20:06
@FastAl - 感谢您的回复。 StringBuilder已经存在,但问题是定义文件在运行时被读取。这些文件可能很大,因为XML很大。 CPU和内存使用量都激增。作为一个示例,我们选择了1个XML,编写了一个XSLT,将其编译并应用于入站XML。该过程需要几毫秒才能完成,而不会给CPU和内存造成压力。 – G33kKahuna 2011-06-10 15:04:50
只是我的两分钱:也许你可以修改你的工具来产生更多的XML风格输出' '那么你可以写一个xslt,它自己写一个xslt以进行正确的转换(这是可能的)! –
therealmarv
2011-07-09 00:26:34