在asp.net页面中显示xml的代码有什么错误?
这是我的XML文件。它以字符串形式从Nvarchar记录中使用sql数据源从sql数据表中获取在asp.net页面中显示xml的代码有什么错误?,asp.net,Asp.net,这是我的XML文件。它以字符串形式从Nvarchar记录中使用sql数据源从sql数据表中获取 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="Artist.xsl"?> <artists> <artist> <name>KATY PERRY</name> <id>1</id></arti
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Artist.xsl"?>
<artists>
<artist>
<name>KATY PERRY</name>
<id>1</id></artist>
<artist>
<name>SNOOP DOGG</name>
<id>2</id>
</artist>
</artists>
评论:
当我运行页面时,我得到的输出是
有人能帮我弄清楚为什么xml不显示为html吗。我尝试过改变文字Artistlabel模式,但没有成功。甚至玩过XSL文件及其位置吗?当您简单地告诉ASP.NET在文本中显示XML时,您并没有真正应用XSLT。您必须单独应用XSLT。从中,您可以了解如何转换XML:
XPathDocument myXPathDoc = new XPathDocument(myXmlFile) ;
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(myStyleSheet);
XmlTextWriter myWriter = new XmlTextWriter("result.html",null);
myXslTrans.Transform(myXPathDoc,null,myWriter);
请注意,示例是写入文件,但您会写入字符串。然后,您必须在每个绑定行的事件中执行此操作,并生成所需的HTML。您正在从数据库中读取作为nvarchar类型的xml。这将把它看作一个字符串,而不是XML。将字符串转换为xml,它应该可以工作 假设您将xml作为字符串从数据库中的变量“xmlString”中提取。 将其转换为xml文档
XmlDocument xdoc= new XmlDocument();
xdoc.loadXml(xmlString);
明白了我用这个在codebehind中的Itemdatabound上
If e.Item.ItemType = ListViewItemType.DataItem Then
Dim m As String = File.ReadAllText(Server.MapPath("Artist.xsl"))
Dim kim As Literal = e.Item.FindControl("Artistslabel")
Dim output As String
Using srt As New System.IO.StringReader(m), sri As New IO.StringReader(kim.Text)
Using xrt As XmlReader = XmlReader.Create(srt), xri As XmlReader = XmlReader.Create(sri)
Dim xslt As New XslCompiledTransform()
xslt.Load(xrt)
Using sw As New System.IO.StringWriter(), xwo As XmlWriter = XmlWriter.Create(sw, xslt.OutputSettings)
xslt.Transform(xri, xwo)
output = sw.ToString
End Using
End Using
End Using
kim.Text = output
End If
谢谢,我用了你的方法,它奏效了。我已经提交了我的代码作为答案。你不需要使用这个。我已经在下面提交了我的代码。谢谢
XmlDocument xdoc= new XmlDocument();
xdoc.loadXml(xmlString);
If e.Item.ItemType = ListViewItemType.DataItem Then
Dim m As String = File.ReadAllText(Server.MapPath("Artist.xsl"))
Dim kim As Literal = e.Item.FindControl("Artistslabel")
Dim output As String
Using srt As New System.IO.StringReader(m), sri As New IO.StringReader(kim.Text)
Using xrt As XmlReader = XmlReader.Create(srt), xri As XmlReader = XmlReader.Create(sri)
Dim xslt As New XslCompiledTransform()
xslt.Load(xrt)
Using sw As New System.IO.StringWriter(), xwo As XmlWriter = XmlWriter.Create(sw, xslt.OutputSettings)
xslt.Transform(xri, xwo)
output = sw.ToString
End Using
End Using
End Using
kim.Text = output
End If