当前位置: 首页 > 面试题库 >

以编程方式创建xslt文件

归翔
2023-03-14
问题内容

我知道我可以xml使用Java中的DOM api 以编程方式创建文件,如下所示:

DocumentBuilderFactory documentBuilderFactory = 
    DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();

Document document = documentBuilder.newDocument();
Element rootElement = document.createElement("map");
document.appendChild(rootElement);

Element em = document.createElement("string");
em.setAttribute("name", "FirstName");
....

但是是否有任何 API 可以构建xslt树?(例如Dom之类的api)

我需要这样的东西:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo">
<xsl:template match="root">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
    <fo:simple-page-master master-name="my-page">
      <fo:region-body margin="1in"/>
    </fo:simple-page-master>
  </fo:layout-master-set>

  <fo:page-sequence master-reference="my-page">
    <fo:flow flow-name="xsl-region-body">
      <fo:block>
        <fo:external-graphic width="100pt" height="100pt" content-width="50pt" content-height="50pt" src="images/shopping-cart_100.jpg"/>
      </fo:block>
      <fo:block>Good Morning, <xsl:value-of select="name" />!</fo:block>
      <fo:block>
        <fo:table>
             <fo:table-body>
                <fo:table-row>
                    <fo:table-cell border="solid 1px black" text-align="center" font-weight="bold">
                        <fo:block>

和:

              <xsl:for-each select="./friend">
                <fo:table-row>
                <fo:table-cell border="solid 1px black" text-align="center">
                    <fo:block>
                        <xsl:value-of select="position()" />
                    </fo:block>
                </fo:table-cell>
                <fo:table-cell border="solid 1px black" text-align="center">
                    <fo:block>
                        <xsl:value-of select="name" />
                    </fo:block>
                </fo:table-cell>
                <fo:table-cell border="solid 1px black" text-align="center">

提前致谢。


问题答案:

由于XSLT也是XML,因此您可以简单地使用相同的策略:

...
Document document = documentBuilder.newDocument();

Element rootElement = document.createElement("xsl:stylesheet");
// adding attributes like namespaces etc...

document.appendChild(rootElement); 
Element em = document.createElement("xsl:template");
em.setAttribute("match", "/");

等等…

但这不是很优雅。您应该改用库或框架,但应该很容易找到一个谷歌浏览器。



 类似资料:
  • 问题内容: 我一直在尝试以编程方式重做我的应用程序上的工作。(不使用情节提要) 除了手动制作导航控制器外,我几乎完成了。 我一直在做一些研究,但找不到任何手动实现此方法的文档。(我开始将应用程序制作为单视图应用程序) 目前,我只有1个ViewController。当然是appDelegate 导航控制器将在应用程序的所有页面中使用。 如果有人可以帮助我,或发送指向一些适当文档的链接以编程方式进行此

  • 是否有无论如何创建pem和pk8文件由我的应用程序本身使用java编程?

  • 我有一个WS,它返回非常基本的产品数据:代码、价格和图像。我需要用这些基本数据以编程方式创建Hybris产品,然后进行同步,以便在店面上看到这些产品。 创建具有这些基本信息的产品的步骤是什么?有OOTB服务吗?

  • 我正尝试使用以下命令以编程方式创建:

  • 问题内容: 我试图以编程方式重现以下渐变。 如何以编程方式设置参数?谢谢 问题答案: http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html 要设置该特定参数(我假设您没有指定一个centerX值): 因此,以编程方式创建上述渐变(不同颜色除外): 注意:对于径向渐变,方向将被忽略

  • 问题内容: 我能够通过Jenkins Web GUI创建一个新节点,然后让容器中运行的节点通过名称和-secret值连接回Jenkins主节点 例如 有没有一种方法可以通过编程方式创建Jenkins节点并获取密码和从属名称,因此我不必通过GUI来执行此操作? 问题答案: 以编程方式创建代理 您可以使用 CLI命令创建具有给定配置的新代理。 例如,考虑到文件中的此最小JNLP代理配置: 您可以通过C