我正在努力做这项工作并且已经搜索了如何解决这个问题的例子无济于事。我正在将mysql结果集转换为xml文件以上传到ebaymotorspro。我认为这将是相对简单的,但我正在努力与ebay和.net框架提出的约定。
文件的开头元素必须是:
<empro xmlns="urn:de:mobile:emp:inventory:xml:uk:car" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:de:mobile:emp:inventory:xml:uk:car http://www.ebaymotorspro.co.uk/schema/empro-car-uk.xsd">
我正在使用xmlwriter类来重新创建它并且到目前为止这样做了:
Using writer as XmlWriter = XmlWriter.Create(feedfile, xmlsettings)
writer.WriteStartDocument(True)
writer.WriteStartElement("empro", "urn:de:mobile:inventory:xml:uk:car")
' This Bit is causing the issue
writer.WriteAttributeString("xmlns", "xsi", "http://www.w3.org/2001/XMLScema-instance")
End Using
我最终在xml文件中使用了以下代码:
<empro p1:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p1="xmlns" xmlns="urn:de:mobile:emp:inventory:xml:uk:car" />
哪个不正确,任何人都可以指出我正确的方向,使这个输出正确的文件头?
非常感谢 格雷厄姆
答案 0 :(得分:0)
导致您遇到问题的部分应使用WriteAttributeString()
重载which accept four parameters编写:
' This Bit is causing the issue'
writer.WriteAttributeString("xmlns", "xsi", Nothing, "http://www.w3.org/2001/XMLScema-instance")
无论如何,我将亲自使用LINQ-to-XML执行此操作。 VB甚至具有C#不构造XML的独有功能:具有嵌入式表达式支持的XML文字。例如:
Dim contactName As String = "Patrick Hines"
Dim contact As XElement =
<contact><%= contactName %></contact>
Console.WriteLine(contact.ToString())
'output :'
'<contact>Patrick Hines</contact>'