C#Webservice响应xml显示为pdf
我是C#web开发新手。我正在开发一种软件,以XML格式接收来自webservice的响应。 (包括由webservice生成的条形码)。 有一个由webservice provider提供的选项,我必须在xml中添加一行 (示例<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
) 作为第二行,并使用webservice provider提供的样式表在web浏览器中显示。如果我不得不选择这个选项,我怎样才能在接收到的xml文件中添加该行作为第二行,我该如何映射webserive提供的样式表在这个xml的项目中。 如果我不采取这种选择,是否有可能以XML格式显示数据(包括由webservice生成的条形码),如果我不选择该选项。C#Webservice响应xml显示为pdf
如果我正确理解你的问题,你想:
- 添加样式表规范现有的XML
- 转换的XML到PDF
1.添加样式
有由web服务提供者提供选项,即我有通过使用样式表
这是添加一行[...]如在web浏览器中xml和显示器的第二线使用例如Linq,如this answer。所有的 首先,我想你使用的示例中,即
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
可能是不准确的,因为它是一个XSL文件(一个样式表)的第一线;这些类型的文件用于将XML转换为另一个文件(不同的XML或HTML,就像你的情况一样)。但是,你说
使用Web服务提供
提供的样式表,所以我的猜测是,你已经拥有了这些样式表,你可以使用它们,而不是自己创建它们。 如果是这样,你要添加的行就像是
<?xml-stylesheet type="text/xsl" href="helloWorld.xsl"?>
让我们假设你已经在你的XML存储到一个名为“文档”,其根元素是“根”
var FilePath = "Example.xml";
var Document = XDocument.Load(FilePath);
var Root = XDocument.Descendants("Root").Single();
的XDocument
变量然后你就可以添加你的样式表这种方式,获得一个新的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。
让我知道你是否需要更多细节。
谢谢......这就是我要找的...谢谢你指导我...... – MSK
没问题,问你是否需要别的东西。 –
看起来他们希望你做[XsltCompiledTransform](https://msdn.microsoft.com/en-us/library/system.xml.xsl.xslcompiledtransform(v = vs.110).aspx),但没有一个缩小的例子,一个[MCVE],并试图从你这个问题是太宽泛无法回答。如果您将我们链接到您使用的服务提供商文档,它可能会有所帮助。 – rene