我是C#web开发的新手。我正在开发一种软件,以XML格式接收来自webservice的响应。 (包括webservice生成的条形码)。
webservice提供商提供了一个选项,我必须添加一行
(实施例<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
)
作为xml中的第二行,并使用webservice提供程序提供的样式表在Web浏览器中显示。如果我必须选择此选项,我如何在接收的xml文件中添加该行作为第二行还如何映射此xml项目中webserive提供的样式表。
如果我不采用该选项,是否可以将xml中的数据显示为pdf(包括由webservice生成的条形码),如果我不选择该选项。
答案 0 :(得分:0)
如果我理解你的问题,你想:
<小时/> 的 1。添加样式表
webservice提供商提供了一个选项,我必须在xml中添加一行[...]作为第二行,并使用样式表在Web浏览器中显示
这是使用例如Linq,就像this answer一样。 首先,我认为你使用的例子,即
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
可能不准确,因为它是XSL文件的第一行(样式表);这些文件用于将XML转换为另一个文件(不同的XML或HTML,就像你的情况一样)。但是,你说
使用webservice provider
提供的样式表
所以我的猜测是你已经有了这些样式表,你可以使用它们,而不是自己创建它们。 如果是这样,您要添加的行就像
<?xml-stylesheet type="text/xsl" href="helloWorld.xsl"?>
假设您已将XML存储到名为&#34; Document&#34;的XDocument
变量中。其根元素为&#34; Root&#34;
var FilePath = "Example.xml";
var Document = XDocument.Load(FilePath);
var Root = XDocument.Descendants("Root").Single();
然后,您可以通过这种方式添加样式表,获取新的XML:
var NewDocument = new XDocument(
new XProcessingInstruction("xml-stylesheet", "type='text/xsl'ref='helloWorld.xsl'"),
Root);
<小时/> 的 2。 XML到PDF
有几种方法可以做到这一点
您可以解析XML,检索要在PDF上显示的元素,使用像iTextSharp这样的库来创建特定的布局并将其内容放在文件上。
或者,既然您已经拥有XML并且可以使用XSL将其转换为HTML,则可以使用wkHtmlToPdf。
如果您需要更多详细信息,请与我们联系。