使用基于 XSD 的 XSLT 将 XML 转换为 XML
我正在使用 XSLT/Xalan 将一个 XML 文件转换为另一个文件。这样做时,我发现当我创建 XSLT 样式表时,我对想要生成的目标文件的节点进行了硬编码。这看起来很奇怪。
是否可以使用 XSD 以编程方式生成目标文件?我想基本上使用我拥有的 XSD 创建文件的骨架,然后针对源文件运行我的样式表。然后,我可以将从那里找到的值插入生成文件中的适当位置。
有什么办法可以做到这一点吗?或者 XQuery 是否可能提供类似的功能?
I am using XSLT/Xalan to transform one XML file into another. In doing so, I found that when I was creating my XSLT stylesheet, I was hardcoding the nodes of the target file I wanted generated. This just seemed odd.
Is there anyway to programmatically generate the target file using the XSD? I want to basically create the skeleton of the file using the XSD I have and then run my stylesheet against the source file. Then, I can plunk the values I find from there into the appropriate spots in the generated file.
Is there any way to do this? Or does possibly XQuery provide functionality like this instead?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
听起来您好像在问如何序列化 DataSet 并使用 XSLT 对其进行转换。如果是这样,您可以这样做:
将数据集序列化为 XML
至于以可读格式显示它,我建议将 XML 传递到 XSL 转换器,然后您可以使用它来解析XML 并根据需要操作输出。
将 XSLT 转换应用于数据集
http://msdn.microsoft.com/en-us/library/8fd7xytc%28v=vs.71%29.aspx#Y289
这是我创建的一个简单示例,用于解释您如何使用使用 XSL 变压器。我还没有测试过它,但应该非常接近:
使用 XSLT 将 XML 格式化为 HTML
下面是使用 XSLT 将 XML 转换为 HTML 表的示例。它应该相当容易采用,因此您可以将它与序列化数据集一起使用。
假设这是您的数据集,序列化为 XML:
这是一个将数据集转换为 HTML 的 XSLT 脚本:
It sounds like you're asking how to serialize a DataSet and transform it using XSLT. If so, here is how you can do it:
Serialize a DataSet to XML
As for displaying it in a readable format, I would suggest passing the XML into an XSL transformer, which you can then use to parse the XML and manipulate the output as needed.
Applying an XSLT Transform to a DataSet
http://msdn.microsoft.com/en-us/library/8fd7xytc%28v=vs.71%29.aspx#Y289
Here's a simple example I created to explain how you would use the XSL transformer. I haven't tested it, but it should be pretty close:
Formatting XML as HTML using XSLT
Here's an example of using XSLT to transform XML into an HTML table. It should be fairly easy to adopt so you can use it with your serialized DataSet.
Let's say this is your DataSet, serialized to XML:
Here's an XSLT script that transforms the DataSet to HTML:
使用 XSLT 2.0,您可以利用模式信息(对于源文档和目标文档)来使系统能够检查样式表的正确性,如果您尝试访问输入或生成对规范无效的输出,则会向您发出编译时警告。架构。但我不知道有任何工具使用该模式来自动化创建样式表的过程。某些 XSLT 编辑工具 (IDE) 可能使用架构信息来帮助进行语法定向编辑。
With XSLT 2.0 you can take advantage of schema information (for both your source and target documents) to enable the system to check your stylesheet for correctness, giving you compile time warnings if you try to access input or generate output that would be invalid against the schema. But I'm not aware of any tools that use the schema to automate the process of creating the stylesheet. It might be that some of the XSLT editing tools (IDEs) use schema information to help with syntax-directed editing.