首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML :添加带有文件URL的新字段

XML :添加带有文件URL的新字段
EN

Stack Overflow用户
提问于 2018-10-18 05:16:27
回答 1查看 225关注 0票数 1

我有一个名为myfile.xml的输入文件,内容如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<file-format>
<data-set xfer="1.2.840.10008.1.2.1" name="Little Endian Explicit">
<element tag="0008,0018" vr="UI" vm="1" len="64" name="SOPInstanceUID">123</element>
</data-set>
</file-format>

我想添加一个名为fileURL的字段,它的值应该是.xml的路径,.xml替换为.jpg,我想要一个输出文件,其内容如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<file-format>
<data-set xfer="1.2.840.10008.1.2.1" name="Little Endian Explicit">
<element tag="0008,0018" vr="UI" vm="1" len="64" name="SOPInstanceUID">123</element>
<element name="fileURL">/user/local/myfile.jpg</element>
</data-set>
</file-format>

这样我就可以将这个文件输入solr,然后使用这个URL进行索引。做这件事最好的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-18 11:07:18

对于XSLT,此代码通过替换函数帮助您:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">


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

    <xsl:template match="element">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
        <xsl:variable name="self-url" select="replace(base-uri(.), '.xml$', '.jpg')"/>
        <element name="{$self-url}"><xsl:value-of select="$self-url"/></element>
    </xsl:template>


</xsl:stylesheet>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52867401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档