try
{
string s = "";
XmlDocument doc = new XmlDocument();
// 装入指定的XML文档
docLoad(thisultraTextEditor10TextToString()Substring(0, thisultraTextEditor10TextToString()LastIndexOf("\\")) + "\\" + thisultraTextEditor1TextToString()Trim() + "xml");
// 设定XmlNodeReader对象来打开XML文件
reader = new XmlNodeReader(doc);
// 读取XML文件中的数据,并显示出来
while (readerRead())
{
//判断当前读取得节点类型
switch (readerNodeType)
{
case XmlNodeTypeElement:
s = readerName;
break;
case XmlNodeTypeText:
if (sEquals("Title"))// 8
{
sOutput = readerValueToString();
}
else
{ }
//myItemSubItemsAdd(readerValue);
break;
}
}
}
finally
{
//清除打开的数据流
if (reader != null)
readerClose();
}方法/步骤
首先,我们正常使用Excel的另存为,看看能否顺利地直接另存为XML文件。
方法:
点击Excel左上角按钮,在d出的选项中,点击“另存为”
或者直接在Excel中按下快捷键F12
选择最后一项:其他格式。
接下来,重命名一下文件名,并选择文件类型为:
XML数据(xml)
点击“保存”按钮,会出现如下错误警告:
因为工作簿不包含任何XML映射,所以无法保存任何XML数据。
单击“帮助”以获取详细信息。
这个原因是我们的工作簿只是普通的Excel数据,的确没有做过XML映射,或者Excel数据也不是从XML文件导入的。
这时,我们尝试另存为另一种文件类型:
XML电子表格2003(xml)
点击保存按钮。
这时会d出一个兼容性对话框,问你是否保持工作簿的这种格式。
点击“是”,即可将Excel保存为XML格式的文档了。
我们使用软件打开这个XML文档(例如通过Chrome浏览器),发现格式正常,Excel数据也全在里面。
END
注意事项
另存为,可以在Excel中按下快捷键F12
文件类型要选择:XML电子表格2003(xml)XML有以下几个优点: 数据是自说明的 数据可用标准工具加以处理 数据可用标准工具查看 用样式单可容易地生成同样数据的不同视图 XML格式的第一条主要好处是数据是自描述的。每个数字的意义是清楚的,且不会错误地与数字本身相联系。当读取文档时,用户了解 2 中的2指的是击中数而不是得分或是防守。如果键入文档的打字员漏掉了一个数字,不会造成其后的数字都错了位。HITS就是HITS,即使它前面的RUNS元素丢失也没关系。 在本书第二部分中,读者会看到,XML还可以使用DTD来加强限制,使得某些元素,如HITS或RUNS必须存在。 第二条好处是XML提供的数据可用广泛的具有XML处理能力的工具加以处理,从相当贵的软件,如Adobe FrameMaker 到免费软件,如Python和Perl。数据量可以很大,但是数据额外的冗余就允许使用更多的工具来处理它。 当查看数据时,也同样有这样的问题。XML文档可装入Internet Explorer 50、Mozilla、FrameMaker 556和许多其他工具,所有这些工具都提供唯一的、有用的一种数据的视图。数据还可以装入简单的文本编辑器中,如vi、BBEdit和TextPad。这就使得数据或多或少的可在多种平台上查看。 使用新软件也不是获得数据的不同视图的唯一方法。在下一节中,我们将为棒球统计数据创建一个样式单,来提供一种与图4-1完全不同的查看数据的方法。每当对同一文档施加不同的样式单,都可以看到不同图景。 最后,要向自己发问,文件大小真是很成问题吗?当前硬盘容量已经相当大了,可以存入大量数据,即使存储得不太节省也没有太大的关系。同时,XML文件的压缩率很大。全部的两大棒球联赛1998年统计数据的文档是653K。如果用gzip 压缩一下的话,只有66K,几乎压缩了90%。先进的>
一 必须弄清楚最终需要的是什么
我们通过asp或其他动态编程语言 最终需要的是XML格式的数据 这点和XML数据所在的文件载体无关 它可以是实实在在的XML文件 比如 也可以为asp文档 比如
他们都是XML数据的体现 为了实现XML数据的动态 所以需要使用到动态编程语言 比如ASP来实现生成它
二 如何生成动态的XML文档
如果是生成XML文件 介于动态文档是ASP格式的 所以必须借助FSO进行XML文件的生成 比如
<%
xmlfile=server mappath( test xml )
Set fso = CreateObject( Scripting FileSystemObject )
Set MyFile = fso CreateTextFile(xmlfile True)
MyFile WriteLine( <xml version= encoding= gb > )
MyFile WriteLine( <世界> )
MyFile WriteLine( <你好>hello world</你好> )
MyFile WriteLine( </世界> )
MyFile Close
%>
<a >查看XML文件内容</a>
有关FSO的 *** 作参看
cat_id= &log_id=
如果按照生成动态的XML数据文件来说 则是将MyFile WriteLine的相关内容在动态文档中通过程式的手段来控制XML节点的名称和值即可
三 如何使用动态文档生成XML数据
那如果不是生成XML文件 直接在动态文档上输出XML数据呢 须声明文件的类型(即Response ContentType)
<%Response ContentType = text/XML %>
比如直接浏览如下的动态ASP文档 在浏览器中下则显示为XML数据树
<%
With Response
ContentType = text/XML
write( <xml version= encoding= gb > )
write( <世界> )
write( <你好>hello world</你好> )
write( </世界> )
End with
%>
生成的XML文件 其优势就是处理该XML数据的文档可以是静态文档 比如HTML文件通过Javascript XMLDOM来解析XML 同时也易于数据的保留 而动态文档上的动态XML数据则没有这样有点 不过 在如今动态文档无处不在用的时代 似乎这个优势对于一些应用来说是无甚影响 甚至来说 动态文档的XML数据流反而更具优势 更及时 更动态
四 生成XML数据就是这样行了吗?
无论是通过生成具体的XML文件 还是动态的XML数据流 只要按照XML的格式输出相关XML节点和值就可以了 这样看来XML似乎很简单 但这并没有真正接触到XML的 *** 作 在我们看来 这些XML无非就是一些成对的标签和相关字符组成的数据记录 毫无生命力可言 然而事实上 通过XMLDOM来 *** 作XML则显示了XML的绝对优势(这点在生成XML时优势不明显 却在添加 删除XML节点时体验无限)
使用XMLDOM创建XML文档 可使用Save方法生成XML文档 使用createElement方法创建XML元素 createNode创建节点 其实对于XML中的任何标签的创建都可以任意选择其中的一种 不过一般使用createElement创建顶层(根)元素 使用createNode创建子节点(元素) 当然createElement和createNode的使用方法也是不同
<%
Set objXMLdoc = CreateObject( Microsoft XMLDOM )
Set world=objXMLdoc createElement( 世界 )
objXMLdoc appendChild(world)
Set hello=objXMLdoc createNode( element 你好 )
hello Text = hello world
objXMLdoc documentElement appendChild(hello)
objXMLdoc Save Server MapPath( test xml )
Set objXMLdoc = Nothing
%>
CreateObject( Microsoft XMLDOM ) 声明使用XMLDOM对象 在元素或节点被建立(createElement createNode)时 其并没有加到文件树中 若要将节点加到文件树中 则需要插入 如appendChild xmlDocument createNode(type name nameSpaceURI) 表示建立一个指定型态 名称 及命名空间的新节点
type 用来确认要被建立的节点型态 name 是一个字符串来确认新节点的名称 命名空间的前缀则是选择性的 nameSpaceURI 是一个定义命名空间URI 的字符串 如果前缀被包含在名称参数中 此节点会在nameSpaceURI 的内文中以指定的前缀建立 如果不包含前缀 指定的命名空间会被视为预设的命名空间
objXMLdoc createNode( element 你好 ) 等同于 objXMLdoc createElement( 你好 )
objXMLdoc documentElement appendChild(hello)其实就是XML文档根元素下建立节点 在本例中等同于 world appendChild(hello) world为本例中的节点名 以此类推所以可以这样来写
<%
Set objXMLdoc = CreateObject( Microsoft XMLDOM )
Set world=objXMLdoc createElement( 世界 )
objXMLdoc appendChild(world)
Set hello=objXMLdoc createElement( 你好 )
hello Text = hello world
world appendChild(hello)
objXMLdoc Save Server MapPath( test xml )
Set objXMLdoc = Nothing
%>
需要注意的是 通过XMLDOM生成的XML文件都是UTF 格式的 这对我们所有应用程序文件的UTF 化作了很好的推介
总结
lishixinzhi/Article/program/net/201311/13259
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)