背景:我的工作中没有处理过很多XML处理。但是,我目前的工作需要我阅读并转换大约10到100个MB的大中型XML文件。
要求:这些XML文档具有我需要更改为伪造ID的用户ID。这些用户到伪造ID的映射在单独的文件中给出。
我会做什么:按照惯例,我要做的是读取整个文件,构建一个DOM树,然后通过树中的节点递归,并在我去的时候将用户ID更改为伪ID,最后转储整个最后记录下来。
我的问题:使用XSLT,XPath等技术比传统模型有更清洁吗?由于我将使用.NET框架进行开发,如果我能在.NET和C#的上下文中得到答案,那将是有用的虽然没有必要。
道歉,如果这听起来像一个菜鸟问题。我以前从未使用过基于XML的技术。我想每个人都需要从某个地方开始,这是我的暗示! :)
答案 0 :(得分:1)
这是完全标准的XSL要求。如果可以将映射的名称嵌入到样式表中,则可以使用命令行msxsl.exe对其进行原型设计。然后,转换将以不同程度的效率应用您对数据进行假名称化所需的映射。
如果名称全部存储在众所周知的元素(或属性)中,则从身份转换开始,并引入其他模板以映射文档中显示的名称。
答案 1 :(得分:1)
听起来像XSLT可能会成功。使用XSLT,您可以创建一个样式表,其中包含您的所有代码和用户伪造ID的映射。您将拥有一个将替换应用于所有用户ID的功能。
学习XSLT的工作方式(XML语法,功能范例,了解XPath)需要做一些工作,但是如果你有时间它将对这个和其他XML任务有用。
在.net中,使用XSLT reference和transformation classes来完成您的工作。您的C#代码将是最小的,您的所有逻辑都将在您的XSL转换样式表中(作为参数传递的.xsl文件)。请记住使用XSLCompiledTransform
,因为它更快。