如何从数据库表中生成xml文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从数据库表中生成xml文件?相关的知识,希望对你有一定的参考价值。

有一个树形结构,存储在数据库中,用的是sql server 2000的数据库。存的数据表中有5列,第一列为id,即一个以1为种子的递增序列;第二列为节点编号,用于表示树形节点中的值;第三列为父节点编号;第四列为节点名称,用于表示树形节点中显示的文字;第五列为节点层数。 现在,要将从该数据表产生一个xml文件,这个文件可以直接绑定到树形控件从而来生成这颗树。请问,这个生成xml文件的c#程序代码怎么写啊?有一个方法是用xmltextwriter的方法做的,但是却总是提示没有根节点。还有一种是用xmldocment的方法做的,但是,在写的过程中,关于xmlnode和xmlelement之间无法转化,也没办法写下去。 有没有哪位高手大哥能告诉小弟怎么写啊?如果解决的话,还会追加分数,谢谢拉,在线急等! 有没有简单的答案啊?要针对性强的。这么长的代码,是要看死人的。呵呵。 非典型性天秤座这位仁兄着实厚道。不过小弟我已经解决了这个问题。不是用仁兄的方法做的。因为这样做会有一个很大的问题,就是循环次数过多,速度会很慢了。 小弟刚刚用了强制转换,还是用xmldocument方法实现的。呵呵,只用了一次遍历数据表就直接生成了。

参考技术A 这个可以使用asp转义字符代码chr(34),也可以使用单引号,比如:
myfile.writeline("<key
caption="&chr(34)&a_name&chr(34)&">")

myfile.writeline("<key
caption='"&a_name&"'>")
应该都可以吧。

如何在 Oracle 中生成 xml 空值?

【中文标题】如何在 Oracle 中生成 xml 空值?【英文标题】:How to generate xml null values in Oracle? 【发布时间】:2016-11-14 13:27:24 【问题描述】:

我是通过plsql 生成XML 的新手。如何使用null 值生成XML? 我需要下面的输出。

DealUserDescription i:nil="true"/

【问题讨论】:

【参考方案1】:

创建 nil xml 元素的功能,我相信它可以改进:

create function add_xml_element(
  p_name in varchar2,
  p_value in varchar2,
  p_namespaces in varchar2 default null,
  p_nil_prefix in varchar2 default null,
  p_nil_namespace in varchar2 default null) return XMLType is

  l_result XMLType;
begin
  if p_value is not null then
    l_result := XMLType('<' || p_name || ' ' || p_namespaces || '>'||p_value||'</' || p_name || '>');
  elsif p_nil_prefix is not null and p_nil_namespace is not null then
    l_result := XMLType('<' || p_name || ' ' || p_namespaces || ' ' || p_nil_namespace || ' ' || p_nil_prefix || ':nil="true"/>');
  else
    raise_application_error(-20001, 'Nil prefix or namespace not provided');
  end if;

  return l_result;
end;

和 plsql 脚本来测试它:

declare
  l_xml xmlType;

  cursor c_build_xml(cp_value in varchar2) is
    select
      xmlElement("root",
        add_xml_element(
          'node',
          cp_value,
          null,
          'i',
          'xmlns:i="default"'))
    from
      dual;
begin
  open c_build_xml('nodevalue');
  fetch c_build_xml
    into l_xml;
  close c_build_xml;

  dbms_output.put_line(l_xml.getClobVal());

  open c_build_xml(null);
  fetch c_build_xml
    into l_xml;
  close c_build_xml;

  dbms_output.put_line(l_xml.getClobVal());
end;
/

脚本输出如下:

<root>
  <node>nodevalue</node>
</root>

<root>
  <node xmlns:i="default" i:nil="true"/>
</root>

【讨论】:

以上是关于如何从数据库表中生成xml文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用存储过程在 SQL Server 中生成表的数据脚本文件?

如何通过pl sql函数从表中生成列表?

如何在 R 中生成具有累积频率和相对频率的频率表

如何从 Access 表中生成 .net 类

通过 UCanAccess 在 Eclipse 中“从表中生成实体”(MS Access)

从excel表中生成批量SQL,将数据录入到数据库中