webservice返回XML

amingo 2009-09-12 01:18:38
为什么我的webservice返回的是
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/"><sometag>Hello World</sometag> </string>

而不是
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/"> <sometag>Hello World </sometag> </string>

有什么办法让它显示成下面的样式
...全文
2773 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinwutao 2012-07-15
  • 打赏
  • 举报
回复
Service返回给你的Xml标签是数据类型
cat_hsfz 2009-09-15
  • 打赏
  • 举报
回复
这是做不到的,因为违反了XML标准。

你返回的是一个字符串,这个字符串会被编码放到<string></string>里面。你可能想不编码,但这实际上行不通。假设你传递的字符串是"<sometag>hello >>>",那么输出就是<string><sometag>hello >>></string>。这是一个合法的XML吗?这甚至不是一个合法的XML!因此,你是不可能要求一个字符串不编码的,否则连基本的XML合法性都保证不了。
zmm12 2009-09-14
  • 打赏
  • 举报
回复
后台特殊符号处理一下,没什么大问题的
琥珀明月 2009-09-14
  • 打赏
  • 举报
回复
不懂xml,过来学习学习~
yanglei6979431 2009-09-14
  • 打赏
  • 举报
回复
你将特殊符号转换一下啊 HTMLEncode这个是编码 HtmlDecode这个是解码的
feixian49 2009-09-14
  • 打赏
  • 举报
回复
我想应该是要被替换的:
<string xmlns="http://tempuri.org/"><sometag>Hello World</sometag> </string>

你的WebMothod返回的是一个String类型的字符串,放在页面里表,特殊符号是要被URL编码的。你要“<sometag>Hello World </sometag>”,应该就不是返回String类型了。
amingo 2009-09-14
  • 打赏
  • 举报
回复
feixian49 2009-09-14
  • 打赏
  • 举报
回复
楼主说的<string xmlns="http://tempuri.org/"><sometag>Hello World</sometag> </string>
到底是HTML 源码,还是在浏览器显示的结果?
我上面说的可是HTML 源码,不是在浏览器显示的结果。
feixian49 2009-09-14
  • 打赏
  • 举报
回复
<string xmlns="http://tempuri.org/"><sometag>Hello World</sometag> </string>
表示WebMethod 返回一个 string 类型,其值是“<sometag>Hello World</sometag>”,被HTML编码过的(纠正前面我说的URL编码,这里不是URL编码),源码值就是<sometag>Hello World </sometag>


<string xmlns="http://tempuri.org/"> <sometag>Hello World </sometag> </string>
至于楼主说要得到上面这个串,估计是得不到的,它的意思是,string类型有一个属性叫sometag,其值是“Hello World”。但是 string 是系统类型,他并没有sometag 这个属性。

不知道我的理解有没有错。
feixian49 2009-09-14
  • 打赏
  • 举报
回复
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Data

'若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
' <System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class _001_wssReturnString
Inherits System.Web.Services.WebService

<WebMethod()> _
Public Function HelloWorld() As String
Return "<hello>Hello World</hello>"
'结果:
'<?xml version="1.0" encoding="utf-8"?>
'<string xmlns="http://tempuri.org/"><hello>Hello World</hello></string>
End Function

<WebMethod()> _
Public Function GetInteger() As Integer
Dim index As Integer = 100
Return index

'<?xml version="1.0" encoding="utf-8" ?>
'<int xmlns="http://tempuri.org/">100</int>
End Function

<WebMethod()> _
Public Function GetDouble() As Double
Dim d As Double = 10.2
Return d

'<?xml version="1.0" encoding="utf-8" ?>
'<double xmlns="http://tempuri.org/">10.2</double>
End Function

<WebMethod()> _
Public Function GetEmployee() As Employee
Dim emp As New Employee
emp.FirstName = "Bill"
emp.LastName = "Gates"
emp.Salary = 100000000
Return emp

'结果:
'<?xml version="1.0" encoding="utf-8"?>
'<Employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
' <FirstName>Bill</FirstName>
' <LastName>Gates</LastName>
' <Salary>100000000</Salary>
'</Employee>
End Function


<WebMethod()> _
Public Function GetEmployees() As List(Of Employee)
Dim emp1 As New Employee
emp1.FirstName = "Bill"
emp1.LastName = "Gates"
emp1.Salary = 100000000

Dim emp2 As New Employee
emp2.FirstName = "Barack"
emp2.LastName = "Obama"
emp2.Salary = 20000000

Dim empList As New List(Of Employee)
empList.Add(emp1)
empList.Add(emp2)
Return empList

'<?xml version="1.0" encoding="utf-8"?>
'<ArrayOfEmployee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
' <Employee>
' <FirstName>Bill</FirstName>
' <LastName>Gates</LastName>
' <Salary>100000000</Salary>
' </Employee>
' <Employee>
' <FirstName>Barack</FirstName>
' <LastName>Obama</LastName>
' <Salary>20000000</Salary>
' </Employee>
'</ArrayOfEmployee>
End Function

<WebMethod()> _
Public Function GetDataSet() As DataSet
Dim ds As New DataSet
ds.Tables.Add(_GetDataTable)

Return ds

End Function

Public Function _GetDataTable() As DataTable
Dim dt As New DataTable
dt.Columns.Add(New DataColumn("Index", GetType(Integer)))
dt.Columns.Add(New DataColumn("Name", GetType(String)))
dt.Columns.Add(New DataColumn("Value", GetType(String)))

Dim dr As DataRow
For i As Integer = 0 To 10
dr = dt.NewRow()
dr("Index") = i
dr("Name") = "Name " + i.ToString
dr("Value") = "Value " + i.ToString
dt.Rows.Add(dr)
Next
Return dt
End Function


End Class

Public Class Employee
Private _FirstName As String
Public Property FirstName() As String
Get
Return _FirstName
End Get
Set(ByVal value As String)
_FirstName = value
End Set
End Property

Private _LastName As String
Public Property LastName() As String
Get
Return _LastName
End Get
Set(ByVal value As String)
_LastName = value
End Set
End Property

Private _salary As Double
Public Property Salary() As Double
Get
Return _salary
End Get
Set(ByVal value As Double)
_salary = value
End Set
End Property

End Class
amingo 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 beijingbeerman 的回复:]
这两个是一样的。在html中< >将被解释成为 <> ,你可以试试 HTML encode & Decode
http://blog.csdn.net/themoment_rain/archive/2007/06/25/1665663.aspx
[/Quote]

我不想让他做替换!
amingo 2009-09-14
  • 打赏
  • 举报
回复
webservice 里就是 return “<sometag>hello</sometag>”
amingo 2009-09-14
  • 打赏
  • 举报
回复
高手哪去了???????????????????????????????
amingo 2009-09-14
  • 打赏
  • 举报
回复
高手哪去了???????????????????????????????
huxinghuo123 2009-09-14
  • 打赏
  • 举报
回复
楼主这么做是想达到什么目的呢?
CODE163 2009-09-14
  • 打赏
  • 举报
回复
如果你是要返回 包含特殊符号的字符串 那么应该把特殊符号进行处理
feixian49 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 amingo 的回复:]
引用 13 楼 feixian49 的回复:
我想应该是要被替换的:
  <string xmlns="http://tempuri.org/"><sometag>Hello World</sometag>  </string>

你的WebMothod返回的是一个String类型的字符串,放在页面里表,特殊符号是要被URL编码的。你要“ <sometag>Hello World  </sometag>”,应该就不是返回String类型了。


那是什么类型??????????????????????????
[/Quote]
我也不知道什么类型,只是我的猜想,今晚回去研究一下。
李冬宝 2009-09-14
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/"><sometag>Hello World</sometag> </string>

没办法的,这是出于安全性考虑,要不然变成
<string xmlns="http://tempuri.org/<sometag>Hello World</sometag></string>

XML解析就有问题了。

你取到string的值后再处理一下就是了。
amingo 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 feixian49 的回复:]
我想应该是要被替换的:
<string xmlns="http://tempuri.org/"><sometag>Hello World</sometag> </string>

你的WebMothod返回的是一个String类型的字符串,放在页面里表,特殊符号是要被URL编码的。你要“ <sometag>Hello World </sometag>”,应该就不是返回String类型了。
[/Quote]

那是什么类型??????????????????????????
灵雨飘零 2009-09-14
  • 打赏
  • 举报
回复
up
加载更多回复(9)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧