XML文件转换

时间:2014-02-12 21:41:50

标签: c# xml xslt xpath

背景:我的工作中没有处理过很多XML处理。但是,我目前的工作需要我阅读并转换大约10到100个MB的大中型XML文件。

要求:这些XML文档具有我需要更改为伪造ID的用户ID。这些用户到伪造ID的映射在单独的文件中给出。

我会做什么:按照惯例,我要做的是读取整个文件,构建一个DOM树,然后通过树中的节点递归,并在我去的时候将用户ID更改为伪ID,最后转储整个最后记录下来。

我的问题:使用XSLT,XPath等技术比传统模型有更清洁吗?由于我将使用.NET框架进行开发,如果我能在.NET和C#的上下文中得到答案,那将是有用的虽然没有必要。

道歉,如果这听起来像一个菜鸟问题。我以前从未使用过基于XML的技术。我想每个人都需要从某个地方开始,这是我的暗示! :)

2 个答案:

答案 0 :(得分:1)

这是完全标准的XSL要求。如果可以将映射的名称嵌入到样式表中,则可以使用命令行msxsl.exe对其进行原型设计。然后,转换将以不同程度的效率应用您对数据进行假名称化所需的映射。

如果名称全部存储在众所周知的元素(或属性)中,则从身份转换开始,并引入其他模板以映射文档中显示的名称。

答案 1 :(得分:1)

听起来像XSLT可能会成功。使用XSLT,您可以创建一个样式表,其中包含您的所有代码和用户伪造ID的映射。您将拥有一个将替换应用于所有用户ID的功能。

学习XSLT的工作方式(XML语法,功能范例,了解XPath)需要做一些工作,但是如果你有时间它将对这个和其他XML任务有用。

在.net中,使用XSLT referencetransformation classes来完成您的工作。您的C#代码将是最小的,您的所有逻辑都将在您的XSL转换样式表中(作为参数传递的.xsl文件)。请记住使用XSLCompiledTransform,因为它更快。