使用其他节点信息创建节点值

用户名

我正在使用XSLT转换XML,并且我有一个带有一个webdocuments节点和一个类型为webdocument的节点的xml。

<webDocuments>
  <WebDocument>
    <id>808924</id>
    <fileName><![CDATA[file name]]></fileName>
    <filePath><![CDATA[.../201504/808924/filename.pdf]]></filePath>
    <hash><![CDATA[1c1bc9f96349fc954cba2dfb58f214b1]]></hash>
    <title><![CDATA[Primer document]]></title>
    <creationDate class="sql-timestamp">30/05/2012 15:49:57</creationDate>
  </WebDocument>
</webDocuments>

我正在尝试将文件路径节点值(文件系统)转换为URL。上面有一个转换后的示例,其中param1应该是$ hash,哈希节点值(在这种情况下为1c1bc9f96349fc954cba2dfb58f214b1),而param2应该是$ id,在这种情况下为id节点值808924

<webDocuments>
  <WebDocument>
    <id>808924</id>
    <fileName><![CDATA[file name]]></fileName>
    <filePath>http://url.com/param1=$hash&param2=$id</filePath>
    <hash><![CDATA[1c1bc9f96349fc954cba2dfb58f214b1]]></hash>
    <title><![CDATA[Primer document]]></title>
    <creationDate class="sql-timestamp">30/05/2012 15:49:57</creationDate>
  </WebDocument>
</webDocuments>

综上所述

<filePath>http://url.com/param1=1c1bc9f96349fc954cba2dfb58f214b1&param2=808924

我做了很多尝试,但没有得到预期的结果:

<xsl:template match="/webDocuments">
    <xsl:for-each select="/WebDocument">
    <xsl:value-of select="$hash"/>
        <xsl:value-of select="concat($baseUrl,$baseCAPUrl,$hash,'&amp;fileId&#61;')"/>

    </xsl:for-each>
</xsl:template>

总之,我的结果是取一个节点值并用于生成另一个值。

提前致谢

用户名

这应该是您所需要的。没有真正的需要使用concat(),您可以只具有连续的xsl:value-ofxsl:text节点即可在此处实现所需的功能。此外,请尝试设计使用的模板xsl:apply-templates而不要使用的“拉”模板xsl:for-each

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <xsl:apply-templates select="*"/>
  </xsl:template>

  <xsl:template match="WebDocument">
    <WebDocument>
      <xsl:apply-templates select="*"/>
    </WebDocument>
  </xsl:template>

  <xsl:template match="filePath">
    <filePath>
         <!-- change below to the right value -->
      <xsl:variable name="baseUrl">http://url.com</xsl:variable>
         <!-- change below too, but I can't see where you use this in the URL -->
      <xsl:variable name="baseCAPUrl">/CAP/</xsl:variable>
      <xsl:value-of select="$baseUrl"/>
      <xsl:text>/</xsl:text>
      <xsl:value-of select="$baseCAPUrl"/>
      <xsl:text>?param1=</xsl:text>
      <xsl:value-of select="../hash"/>
      <xsl:text>param2=</xsl:text>
      <xsl:value-of select="../id"/>
    </filePath>
  </xsl:template>

  <!-- XSL identity -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

给出:

<?xml version="1.0" encoding="UTF-8"?>
<webDocuments>
  <WebDocument>
    <id>808924</id>
    <fileName>file name</fileName>
    <filePath>http://url.com//CAP/?param1=1c1bc9f96349fc954cba2dfb58f214b1param2=808924</filePath>
    <hash>1c1bc9f96349fc954cba2dfb58f214b1</hash>
    <title>Primer document</title>
    <creationDate class="sql-timestamp">30/05/2012 15:49:57</creationDate>
  </WebDocument>
</webDocuments>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用XSLT根据XML中的其他节点更改节点的值

来自分类Dev

XSLT-根据其他节点修改XML节点的值

来自分类Dev

SimpleXML:用值和其他节点解析节点

来自分类Dev

使用其他节点文本作为参考更新节点文本

来自分类Dev

Cypher / Neo4j查询以获取弯曲节点及与此相关的其他节点的信息

来自分类Dev

使用Postgres创建B +树并在B +树的节点中添加其他字段

来自分类Dev

如何在节点orm中创建的其他文件中使用模型对象

来自分类Dev

如何使用XPath从子节点获取文本(如果它是Scrapy中其他节点的父节点)

来自分类Dev

基于连接到其他实体的节点创建关系

来自分类Dev

Neo4j Cypher to C# 如何根据参数的值创建与其他节点的不同关系

来自分类Dev

XSLT-根据匹配的节点值从其他XML文件复制节点

来自分类Dev

解析xml节点内的值并将其打印在其他xml节点中的方法

来自分类Dev

如何仅根据某个节点的属性值修改其他节点?

来自分类Dev

访问文件中其他区域也使用的特定节点

来自分类Dev

使用其他外部服务的构建节点REST服务

来自分类Dev

使用变量中的其他节点对XSL应用模板节点进行排序(XSLT 1.0)

来自分类Dev

使用 XSLT 将基于条件的 XML 节点属性动态传递给其他节点

来自分类Dev

如何在Drupal中将节点的图像设置在其他信息的左侧?

来自分类Dev

连接的节点与其他边或节点重叠

来自分类Dev

如何计算与特定节点相关的所有其他节点

来自分类Dev

如何根据当前节点属性返回其他节点

来自分类Dev

标识节点位于其他两个节点之间

来自分类Dev

如何计算与特定节点相关的所有其他节点

来自分类Dev

HtmlAgilityPack将节点添加到其他节点

来自分类Dev

提取社区节点和其他节点之间的边

来自分类Dev

抓取单个节点,排除同类别的其他节点

来自分类Dev

如何在特定节点上创建 docker 服务但也将其扩展到 swarm 中的其他节点?

来自分类Dev

SQL,在xml变量中查找节点值(如果存在),将其他节点插入xml变量中

来自分类Dev

指向其他节点的唯一节点,但在Neo4j中具有相同的值

Related 相关文章

  1. 1

    使用XSLT根据XML中的其他节点更改节点的值

  2. 2

    XSLT-根据其他节点修改XML节点的值

  3. 3

    SimpleXML:用值和其他节点解析节点

  4. 4

    使用其他节点文本作为参考更新节点文本

  5. 5

    Cypher / Neo4j查询以获取弯曲节点及与此相关的其他节点的信息

  6. 6

    使用Postgres创建B +树并在B +树的节点中添加其他字段

  7. 7

    如何在节点orm中创建的其他文件中使用模型对象

  8. 8

    如何使用XPath从子节点获取文本(如果它是Scrapy中其他节点的父节点)

  9. 9

    基于连接到其他实体的节点创建关系

  10. 10

    Neo4j Cypher to C# 如何根据参数的值创建与其他节点的不同关系

  11. 11

    XSLT-根据匹配的节点值从其他XML文件复制节点

  12. 12

    解析xml节点内的值并将其打印在其他xml节点中的方法

  13. 13

    如何仅根据某个节点的属性值修改其他节点?

  14. 14

    访问文件中其他区域也使用的特定节点

  15. 15

    使用其他外部服务的构建节点REST服务

  16. 16

    使用变量中的其他节点对XSL应用模板节点进行排序(XSLT 1.0)

  17. 17

    使用 XSLT 将基于条件的 XML 节点属性动态传递给其他节点

  18. 18

    如何在Drupal中将节点的图像设置在其他信息的左侧?

  19. 19

    连接的节点与其他边或节点重叠

  20. 20

    如何计算与特定节点相关的所有其他节点

  21. 21

    如何根据当前节点属性返回其他节点

  22. 22

    标识节点位于其他两个节点之间

  23. 23

    如何计算与特定节点相关的所有其他节点

  24. 24

    HtmlAgilityPack将节点添加到其他节点

  25. 25

    提取社区节点和其他节点之间的边

  26. 26

    抓取单个节点,排除同类别的其他节点

  27. 27

    如何在特定节点上创建 docker 服务但也将其扩展到 swarm 中的其他节点?

  28. 28

    SQL,在xml变量中查找节点值(如果存在),将其他节点插入xml变量中

  29. 29

    指向其他节点的唯一节点,但在Neo4j中具有相同的值

热门标签

归档