您的位置:程序门 -> .net技术 -> vb.net



xmltextwrite的功能


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


xmltextwrite的功能[已结贴,结贴人:bejon]
发表于:2007-07-29 15:08:36 楼主
xmltextwrite好像不能写出以下格式,谁知道这段xml码是怎么写出来的
<?xml   version= "1.0 "   encoding= "utf-8 "   ?>
<members>
    <member   name= "n:envdte80 ">
        <summary>
            envdte80   contains   the   ...
            <see   cref= "n:envdte "/>
            here   something
        </summary>
    </member>

    <member   name= "t:envdte80._codemodelevents ">

        <summary>
            refer   to
            <see   cref= "t:envdte80.codemodelevents "/>
            for   this   functionality.   do   not   instantiate   from   this   class.
        </summary>
    </member>
</members>
发表于:2007-07-29 15:13:371楼 得分:8
msdn说:

下面的示例使用   xmltextwriter   创建   xml   输出。
[visual   basic]
shared   sub   writequote(writer   as   xmlwriter,   symbol   as   string,   price   as   double,   change   as   double,   volume   as   long)
      writer.writestartelement( "stock ")
      writer.writeattributestring( "symbol ",   symbol)
      writer.writeelementstring( "price ",   xmlconvert.tostring(price))
      writer.writeelementstring( "change ",   xmlconvert.tostring(change))
      writer.writeelementstring( "volume ",   xmlconvert.tostring(volume))
      writer.writeendelement()
end   sub   'writequote

public   shared   sub   main()
      dim   writer   as   new   xmltextwriter(console.out)
      writer.formatting   =   formatting.indented
      writequote(writer,   "msft ",   74.125,   5.89,   69020000)
      writer.close()
end   sub   'main

输出
<stock   symbol= "msft ">
            <price> 74.125 </price>
            <change> 5.89 </change>
            <volume> 69020000 </volume>
</stock>
发表于:2007-07-29 15:56:412楼 得分:0
谢谢楼上的兄弟,msdn我也查了。请注意
<see   cref= "n:envdte "/>
这个存在于第一个 <member> 的值中间,我想问下这东西没有相对的写法吧?还是将
envdte80   contains   the   ...
<see   cref= "n:envdte "/>
here   something
作为一个整体当做原样写入?
发表于:2007-07-29 15:58:113楼 得分:0
我的意思是,如果分析一个xml文档的话, <see   cref= "n:envdte "/> 是否有特殊意义?应被分开来看还是与上下两行当作 <summary> 的值整体来看待
发表于:2007-07-29 16:34:014楼 得分:2
有特殊意义
同样:msdn
<see> 请参见
建议的文档注释标记
<see   cref= "member "/>
其中:  

cref   =   "member "  
对可以通过当前编译环境进行调用的成员或字段的引用。编译器检查到给定代码元素存在后,将   member   传递给输出   xml   中的元素名。必须将   member   括在双引号   ( "   ")   中。  
备注
<see>   标记使您得以从文本内指定链接。使用   <seealso>   指示希望在“请参见”一节中出现的文本。

使用   /doc   进行编译可以将文档注释处理到文件中。

示例
有关使用   <see>   的示例,请参见   <summary> 。
发表于:2007-07-30 00:55:365楼 得分:0
这东西xmltextwrite没相对应的语句可以写入?
发表于:2007-07-30 01:52:416楼 得分:10
我的意思是,如果分析一个xml文档的话, <see   cref= "n:envdte "/> 是否有特殊意义?应被分开来看还是与上下两行当作 <summary> 的值整体来看待
----------------------------------------------------------------------------

有特殊意义,   楼主只需要测试一下如下两个   xpath   的值就知道了:
(/members/member[2]/summary)[1]
(/members/member[2]/summary/see/@cref)[1]


另外,   对于
(/members/member[2]/summary)[1]
它里面实际上有两个   text,   即如下两个   xpath   分别会取得 <see   ../>   前和其后的内容   :
(/members/member[2]/summary/text()[1])[1]
(/members/member[2]/summary/text()[2])[1]
发表于:2007-07-30 02:01:257楼 得分:0
注:
我是在   sql   server   中测试   xpath   的,   而且测试的是第2个member元素

发表于:2007-07-30 02:03:148楼 得分:0
--   在   sql   中,   可以这样写
declare   @a   xml
--   初始化
set   @a= '
<members>
    <member   name= "n:envdte80 ">
        <summary>
        </summary>
    </member>
</members>
'

--   写入第1个   text()
set   @a.modify( '
insert   text{ "envdte80   contains   the   ... "}
into   (/members/member/summary)[1]
')

--   写入元素   see
set   @a.modify( '
insert   <see   cref= "n:envdte "/>
into   (/members/member/summary)[1]
')

--   写入第2个   text()
set   @a.modify( '
insert   text{ "here   something "}
into   (/members/member/summary)[1]
')
select   @a


--   得到如下的效果,   所以我想   xmltextwrite   是否也做类似的写入就行了(当然,   sql可以实现一次写入的):
<members>
    <member   name= "n:envdte80 ">
        <summary>
            envdte80   contains   the   ...
            <see   cref= "n:envdte "   />
            here   something
        </summary>
    </member>
</members>


快速检索

最新资讯
热门点击