【发布时间】:2021-09-15 03:50:30
【问题描述】:
TNT 以 XML 和 XSL 文件的形式提供清单数据以将该数据转换成。
然后输出是用于打印的清单的 HTML 文件。
这是 XSL 文件:
https://express.tnt.com/expresswebservices-website/stylesheets/HTMLManifestRenderer.xsl
在xsl文件中有以下内容:
<xsl:apply-templates select="PACKAGE[position() >= 1 and position() < 4]" mode="int"/>
根据我在这方面极其有限的知识,这似乎阻止了清单中显示超过 3 个项目。
我想取消这个限制。就像把“
我有以下有效的代码:
public static string TransformXmlStringWithXslString(string xmlString, string XSLStylesheetUrl)
{
AppContext.SetSwitch("Switch.System.Xml.AllowDefaultResolver", true);
// process our xml
XmlTextReader xmlTextReader = new XmlTextReader(new StringReader(xmlString));
XPathDocument xPathDocument = new XPathDocument(xmlTextReader);
XsltSettings settings = new XsltSettings(true, true);
// process the xsl
XmlTextReader xmlTextReaderXslt = new XmlTextReader(XSLStylesheetUrl);
XslCompiledTransform xslCompiledTransform = new XslCompiledTransform();
xslCompiledTransform.Load(xmlTextReaderXslt, settings, new XmlUrlResolver());
// handle the output stream
StringBuilder stringBuilder = new StringBuilder();
TextWriter textWriter = new StringWriter(stringBuilder);
// do the transform
xslCompiledTransform.Transform(xPathDocument, null, textWriter);
return stringBuilder.ToString();
}
在将 XML 推送到其中之前更新该值的最佳方法是什么?
【问题讨论】:
-
不要改变!!!模式旨在使客户端和服务器兼容。如果您更改架构,您可能无法将数据传输到另一个应用程序。
-
@jdweng 但在这种情况下,它只是呈现用于打印的清单文件的 HTML...
-
是否每超过 3 个项目提供一次数据?如果架构的最大值为 3,我认为您不会每个人都获得超过 3 个项目。
-
是的。有时会发送超过 3 个包裹。我们不理解他们施加此限制的“商业”原因。但是为了我们使用文档,我们需要更多