【发布时间】:2014-05-08 08:56:47
【问题描述】:
我是一名 PHP 程序员,我正在尝试理解一些我认为是 ASP.NET 的代码。这也是我第一次涉足 XML。我无权使用 Windows 机器进行测试。
我需要生成第三方代码可以使用的 XML 输出。第三方想要使用我们的数据而不是他们当前使用的数据源。我不想完全复制当前的 XML 结构,因为它不能很好地映射到我们的数据。
当前 XML 的结构非常扁平。只有几个嵌套元素,第三方没有使用它们中的任何一个。第三方确实有分包程序员,但他很忙。另外,我想亲自了解一下这是如何工作的。
这是自定义 CMS 插件的摘录:
Dim obj_set As New Data.DataSet()
Using obj_reader As New System.Xml.XmlTextReader("http://www.example.com/xml_output.php")
obj_set.ReadXml(obj_reader)
End Using
Dim obj_view As Data.DataView = obj_set.Tables("profile").DefaultView
obj_view.Sort = "cname"
Dim obj_data As Data.DataTable = obj_view.ToTable()
所以从我目前收集到的,这段代码
- 将 XML 文件读入数据集
- 按 cname 对配置文件表进行排序
- 从排序视图创建一个新的 DataTable
还有其他代码将新表存储到缓存中并从中检索。然后是循环遍历表行并将列名映射到模板变量的代码。
当前 XML 结构的示例摘录:
<profiles>
<profile>
<cname>ABC Corporation</cname>
<fname>John</fname>
<lname>Smith</lname>
<sector>Widgets</sector>
<subsectors>
<subsector>Basic Widgets</subsector>
<subsector>Fancy Widgets</subsector>
</subsectors>
</profile>
</profiles>
那么subsectors 数据会发生什么?读者是否为它创建了一个单独的表?如果有,这些表是如何关联的?
我们的数据包括每个公司的多个联系人。我可以在顶层 fname1、fname2、fname3 创建多个元素以保持扁平结构。但我认为嵌套结构对于这种数据是有意义的。问题是我不明白这样的结构变化是否与插件代码兼容。
需要对插件代码进行哪些更改才能使用嵌套元素?
【问题讨论】:
标签: c# asp.net xml xml-parsing