【发布时间】:2011-03-23 09:32:22
【问题描述】:
Asp.NET - C#.NET
我需要关于以下设计问题的建议:
我每天都会收到 XML 文件。它改变了数量,例如昨天收到 10 个 XML 文件,今天收到 56 个 XML 文件,明天可能收到 161 个 XML 文件,等等。
有 12 种类型(12 XSD)...顶部有一个名为 FormType 的属性,例如FormType="1"、FormType="2"、FormType="12" 等多达 12 种表单类型。
它们都有共同的字段,例如姓名、地址、电话。 但是例如FormType=1 用于建筑,FormType=2 用于 IT,FormType 3=医院,Formtype=4 用于广告等。
正如我所说,它们都有共同的属性。
要求: 需要一个搜索屏幕,以便用户可以对这些 XML 内容进行搜索。但我不知道如何处理这个问题。例如在某些属性的文本中搜索从 Date_From 和 Date_To 接收到的 xml。
问题: 我听说过将 XML 放在二进制字段中并执行 XPATH 查询或其他任何操作,但不知道要在 google 上搜索的单词。
我正在考虑创建一个大的 database.table 并读取所有 XML 并将其放入数据库表中。但问题是一些 xml 属性非常大,比如 2-3 页。并且其他 XML 文件中的相同属性为空.. 因此,为每个 XML 属性创建 NVARCHAR(MAX) 并将它们放入 table.field.... 一段时间后,我的 DATABASE 将成为一个大怪物...
有人可以建议处理此问题的最佳方法是什么吗?
【问题讨论】:
-
我建议您将所有文件的 XML(完整 XML)保存在表的单个字段中,例如MyTable 具有字段, date , XML(nvarchar(max)) ,然后在存储过程中通过 sql 搜索它们,例如 select * from OPENXML() 。只是一个建议,如果适合您的目的,您可以自己深入研究
-
你的意思是创建一个字段 nvarchar(max) 例如命名 XMLREceives。并通过 StreamWriter 将 XML 保存在该字段中(读取 XML 并将整个 XML 写入该字段)?那么搜索呢?例如location 是“Chicago”,是否需要读取所有记录并使用 XMLDocument 来检查 location 属性是否包含 Chicago?
标签: c# asp.net xml linq-to-xml