我一直在C#中处理C#中的很多XML处理,并且从长时间的JavaScript代码返回到C#之后,我真的错过了一些JS的快捷方式。什么更好:反序列化对象与Xpathing对XML文档?
我已经去了一个很大的XML文档,这些文档由很多元素,子元素等组成。代表一个在线预订的住宿/航班/景点门票。
到目前为止,我刚刚通过文档Xpathing来提取我需要的信息。我现在已经开始将这些转换为辅助函数。因此,例如,如果我们处理预订,如果它有第三方的航班,我们可能会改变。这很容易检查Xpath我们只是检查一个元素的值。所以我有一个辅助函数,它可以做到这一点,所以我的Xpath只在一个地方,并返回一个布尔值。我只有大约十几个这样的人,直到现在我一直把整个事情当作预订来处理,但是我们刚刚完成了一些关于预订的飞行元素和最后4个帮手的工作刚刚创建的飞机与飞行相关,这让我想到如果我这样做是正确的。
我避免了将整个文档转换为Object的必要性,因为它的大小非常非常痛苦,而且目前还不需要它,所以仍然不是真的。创建所有这些对象将是一个巨大的痛苦,我已经完成了类似的项目,在这条路线已经完成,它只是试图调试它,或者初始化它的头。我们没有使用所有的文档,我们所做的处理几乎不使用它的10%,所以对所有内容进行反序列化似乎都有些过度设计。在JS中对它进行反序列化将是一件轻而易举的事情,但是C#只是让它长得啰嗦。我知道我可以使用XSD.exe来消除一些痛苦,但是我发现如果没有一个好的模式(这当然不存在)使用这样的混乱。
但它让我想到,我们是否应该总是从我们的XML中创建一个巨大的对象集合,还是我已经完成的快速方法仍然可以接受?我对此感到满意,但只是试图通过Object来更好地思考它。我们确实将其全部转换,至少在未来的项目中我们需要它时可以使用。
我知道,可能有一些关于xpathing速度的评论,但它的速度足以满足我们目前的需求,所以这不是问题。
任何想法,如果我可以继续XPathing?
感谢您花时间回答。我知道它确定,而不是一种“肮脏”的方式。干杯。 – 2009-10-28 12:02:59