以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  知不知道这样的XML格式是怎么做出来的?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92101)

--  作者:blackzhu
--  发布时间:2016/10/26 11:01:00
--  知不知道这样的XML格式是怎么做出来的?
   <Authors_Table>
  <authors>
    <作者ID>172-32-1176</作者ID>
    <姓>王</姓>
    <名>静静</名>
    <城市>上海</城市>
    <合同>true</合同>
  </authors>
  <authors>
    <作者ID>213-46-8915</作者ID>
    <姓>王</姓>
    <名>亮</名>
    <城市>北京</城市>
    <合同>true</合同>
  </authors>
  <authors>
    <作者ID>238-95-7766</作者ID>
    <姓>乌</姓>
    <名>颖影</名>
    <城市>哈尔滨</城市>
    <合同>true</合同>
  </authors>
  <authors>
    <作者ID>238-95-7769</作者ID>
    <姓>刘</姓>
    <名>艳春</名>
    <城市>哈尔滨</城市>
    <合同>true</合同>
  </authors>
  <authors>
    <作者ID>274-80-9391</作者ID>
    <姓>张</姓>
    <名>彩云</名>
    <城市>吉林</城市>
    <合同>true</合同>
  </authors>
</Authors_Table>
--  作者:blackzhu
--  发布时间:2016/10/26 11:01:00
--  
 我想从EXCEL 导出到这个格式.

--  作者:有点蓝
--  发布时间:2016/10/26 11:39:00
--  
简单的直接拼字符串

System.Xml操作看

Dim doc As New System.Xml.XmlDocument()
Dim root As System.Xml.XmlElement = doc.CreateElement("Authors_Table")
doc.AppendChild(root)
Dim node As System.Xml.XmlNode = doc.CreateElement("authors")
Dim n1 As System.Xml.XmlNode = doc.CreateElement("作者ID")
n1.InnerText = "172-32-1176"
node.AppendChild(n1)
n1 = doc.CreateElement("姓")
n1.InnerText = "王"
node.AppendChild(n1)
root.AppendChild(node)
Output.Show(doc.OuterXml)

--  作者:李孝春
--  发布时间:2016/10/26 12:33:00
--  回复:(有点蓝)简单的直接拼字符串System.Xml操作看...
单个文件拼接倒是没有问题  如果是多个表 怎么进行关联读取数据并按照这个结构生成XML呢?我也是弄了半天都没有弄明白!求解!


比如如下格式:
<!--案件-->
<case>
  <!--收案信息-->       ----主表,与下面红色部分都是关联“起诉书编号”进行数据录入的
  <caseRegistration>
    <!--主罪名(编码与名称,同时额外提供一份对应字典。)-->
    <principalCriminalCause>
      <!--罪名编码-->
      <number></number>
      <!--罪名名称-->
      <name></name>
    </principalCriminalCause>
    <!--建议启用程序:普通程序,简易程序。-->
    <suggestedProcedure></suggestedProcedure>
    <!--量刑建议-->
    <suggestedPenaltyMeasurement>
      <!--建议刑罚、死刑、无期、有期。-->
      <penalty></penalty>
      <!--最小量刑(月)-->
      <minDuration>0</minDuration>
      <!--最大量刑(月)-->
      <maxDuration>0</maxDuration>
    </suggestedPenaltyMeasurement>
    <!--起诉单位(编码与名称,同时额外提供一份对应字典。)-->
    <submittedUnit>
      <!--单位编码-->
      <number></number>
      <!--单位名称-->
      <name></name>
    </submittedUnit>
    <!--提交材料日期(年/月/日,yyyy/MM/dd)-->
    <submittedDate></submittedDate>
    <!--起诉书编号-->
    <suitDocNumber></suitDocNumber>
    <!--涉案金额,单位:元。-->
    <involvedAmount>0</involvedAmount>
    <!--是否未成年犯罪-->
    <isTeen>false</isTeen>
    <!--相关文件-->
    <relatedMaterials>
      <!--可多项,attachments目录下的非中文文件路径,可包含子目录。-->
      <file>
        <!--文件描述-->
        <description></description>
        <!--文件路径-->
        <path></path>
      </file>
    </relatedMaterials>
  </caseRegistration>
  <!--立案证据-->    ---- 类别节点(以下还有多个类别)
  <caseRegistrationEvidence>
    <!--报案、控告、举报、扭送、投案材料,可含多子项。-->
    <caseReports>
      <!--报案、控告、举报、扭送、投案材料,可多项。-->   -----节点名称(以下还有多个节点名)
      <caseReport>
        <!--描述-->
        <description></description>
        <!--相关材料-->
        <materials>
          <!--可多项,attachments目录下的非中文文件路径,可包含子目录。-->
          <file>
            <!--文件描述-->
            <description></description>
            <!--文件路径-->
            <path></path>
          </file>
        </materials>
      </caseReport>
    </caseReports>
    
    <!--相关部门移送的犯罪材料,文字加对应附件,可含多子项。-->  -----节点名称
    <transferredCriminalMaterials>
      <!--相关部门移送的犯罪材料,文字加对应附件,可多项。-->
      <transferredCriminalMaterial>
        <!--描述-->
        <description></description>
        <!--相关材料-->
        <materials>
          <!--可多项,attachments目录下的非中文文件路径,可包含子目录。-->
          <file>
            <!--文件描述-->
            <description></description>
            <!--文件路径-->
            <path></path>
          </file>
        </materials>
      </transferredCriminalMaterial>
    </transferredCriminalMaterials>
    ……
[此贴子已经被作者于2016/10/26 12:40:11编辑过]

--  作者:blackzhu
--  发布时间:2016/10/26 12:40:00
--  
 Dim App As New Application
            Dim Wb As Workbook = App.Workbooks.Open("E:\\美奥口腔办公系统1\\hggh.xls")
            Dim Ws As Worksheet = Wb.Worksheets(1)

 Dim writer As New Xml.XmlTextWriter(xml, System.Text.Encoding.GetEncoding("utf-8"))
                \'书写根元素()
                writer.WriteStartElement("ceshi")
                For i As Integer = 1 To Ws.Rows.Count - 1
                    \'添加次级元素
                    writer.WriteStartElement("authors")
                    For j As Integer = 0 To Ws.Columns.Count - 1
                        \'添加子元素()
                        MessageBox.Show(Ws.Cells(i, j).Value)   \'这一句通不过是什么原因
                        \'  writer.WriteElementString(Ws.Cells(0, j).Value, Ws.Cells(i, j).Value)
                        \' writer.WriteElementString(Ws.Cells(0, j).value, Ws.Cells(i, j).value)
                    Next
                    \'关闭次级元素DatabaseSetting
                    writer.WriteEndElement()
                Next

--  作者:李孝春
--  发布时间:2016/10/26 12:48:00
--  回复:(blackzhu)?Dim App As New Application...
  • toString 将数值转换成字符串,将日期时间值转换成,转换对象为字符串
  •  Cells(i, j)  i是行  J是列 
  • 会不会是对应的节点名没有获取对啊?
  writer.WriteStartElement("ceshi")? 表里有这个么?
[此贴子已经被作者于2016/10/26 12:55:54编辑过]

--  作者:blackzhu
--  发布时间:2016/10/26 13:21:00
--  
 这个是写入字符串.
--  作者:李孝春
--  发布时间:2016/10/26 13:37:00
--  回复:(blackzhu) 这个是写入字符串.
对了  如果每一个节点后都换一行   这个& Chr(13)代码怎么加呢?