none
如何去除<string xmlns="http://tempuri.org/"> RRS feed

  • 问题

  • 请教,我使用的是vs2005/vb.net,在编写webservice时,输出的xml都被包括在了<string xmlns="http://tempuri.org/"></string>中,我要如何才能去除这行元素呢?而且我输出的字符串中已经包括了<?xml>定义,如何才能将默认的第一行定义去掉?我上网查了一下,C#的可以将Namespace清空后,将WebServiceBinding注释即可,但vb.net不行,会提示“属性说明符不是一个完整的语句……”
    2012年2月26日 8:46

全部回复

  • 请教,我使用的是vs2005/vb.net,在编写webservice时,输出的xml都被包括在了<string xmlns="http://tempuri.org/"></string>中,我要如何才能去除这行元素呢?而且我输出的字符串中已经包括了<?xml>定义,如何才能将默认的第一行定义去掉?我上网查了一下,C#的可以将Namespace清空后,将WebServiceBinding注释即可,但vb.net不行,会提示“属性说明符不是一个完整的语句……”
    可以给出你的代码,以及你想要的结果和原来的结果?谢谢
    2012年2月28日 1:56
  • 代码如下:

    Imports System.Web
    Imports System.Web.Services
    Imports System.Web.Services.Protocols
    <WebService(Namespace:="http://tempuri.org")> _
    <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Public Class Service
        Inherits System.Web.Services.WebService
        <WebMethod(Description:="")> _
        Public Function HelloWorld(ByVal ReturnStr As String) As String
            If ReturnStr = "" Then
                Return "Hello World"
            Else
                Return "<name>" & ReturnStr & "</ name>"
            End If
        End Function
    End Class

    我想要的结果:

     <?xml version="1.0" encoding="utf-8" ?> 
    <name>这是一个测试</name>

    系统出来的结果:

      <?xml version="1.0" encoding="utf-8" ?> 
      <string xmlns="http://tempuri.org"><name>这是一个测试</name></string> 
    另:我在代码已经已经用xmldocument做好了一个xml格式的stream,也转化成了string,return后,就有二个<?xml version="1.0" ?>的标签,一个是系统生成的,一个是自己生成的xmldocument里面带着的,怎么去掉一个呢?
    2012年2月28日 3:00
  • Dim xmlstring As String = "<?xml version=""1.0"" encoding=""utf-8""?><string xmlns=""http://tempuri.org""><name>这是一个测试</name></string>"
            xmlstring = xmlstring.Replace("<string xmlns=""http://tempuri.org"">""").Replace("</string>""")
            Dim doc As XDocument = XDocument.Parse(xmlstring)
            doc.Save("c:\\try.xml")

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年3月3日 2:08
  • 你好 如果你是引用Web服务后调用HelloWorld方法那么返回的应该是<name>这是一个测试</name>这个字符串 不会包含你说的命名空间

    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    微软中文论坛同城社区成都QQ群:74268428
    My Blog http://kosmisch.net
    Chengdu,China

    2012年3月6日 13:55
    版主
  • 感谢上面各位的回复,但还是不行

    我的意思是说,在webservice端能不能只返回我自己定义的内容?如果按Wei Dong老师的写法,是在客户端进行的处理了。

    另外,我在webservice端使用xmldocument生成了一个xml格式,如果返回的是xmldocument,在客户端这边是正常的,但如果返回的是string格式的话(使用了xdoc.outxml),大于号和小于号就全部被编码了,如下:

    <?xml version="1.0" encoding="utf-8"?>
    <string xmlns="http://tempuri.org">&lt;name&gt;Hello, Text1&lt;/name&gt;</string>
    这种又应该怎么处理呢?我的webservice只想返回一个string,内容是自己定义好的xml,无论是xmldocument转出来的还是字符串拼出来的,再次感谢各位的帮助。

    2012年3月7日 2:08
  • 首先感谢提供C#的解决方案,我感觉vb可能也有类似的预处理,找找试试?
    2012年4月10日 7:58