提取XML片段以用作前缀mods的输出
我在想一个描述性的标题。。。哈哈 无论如何;这可能很简单,但我在这里有点挣扎。我有一个需要处理的输入。我需要这样做: 提取进程及其所有子进程。 将所有客户端NS前缀更改为fha 将基本名称空间添加到进程标记是的,我知道这很时髦,但这正是我所消耗的资源所需要的。 输入文件 2812883060 1000006611 2019/01/31 16:23:55 ZFWF 1. 米斯莫亚斯2.4提取XML片段以用作前缀mods的输出,xml,xslt,Xml,Xslt,我在想一个描述性的标题。。。哈哈 无论如何;这可能很简单,但我在这里有点挣扎。我有一个需要处理的输入。我需要这样做: 提取进程及其所有子进程。 将所有客户端NS前缀更改为fha 将基本名称空间添加到进程标记是的,我知道这很时髦,但这正是我所消耗的资源所需要的。 输入文件 2812883060 1000006611 2019/01/31 16:23:55 ZFWF 1. 米斯莫亚斯2.4 这对你有用吗 XSLT1.0 事实证明,我不需要对嵌入的片段做任何事情。端点能够掌握嵌入文档的默认名称空间,但
这对你有用吗 XSLT1.0
事实证明,我不需要对嵌入的片段做任何事情。端点能够掌握嵌入文档的默认名称空间,但如果有人想要响应,我不会反对 我需要对Michael的答案做的唯一更改是在信封标记中添加名称空间声明。Micheal不可能知道结束进程需要另一个名称空间
这非常接近。我需要排除这个片段中的mod:第一个模板做什么?我想我可能误解了最后一个问题。。。在我整理细节的时候,我只想帮你做个正确的标记并说声谢谢。我不确定你所说的排除mods是什么意思。除了更改客户端前缀,所有内容都按原样复制,这就是身份转换模板所做的。。。不是mods——这只是我的一个愚蠢之举。我的静态样本与现场测试数据不匹配。我认为转换是从嵌入文档中剥离前缀,但是测试数据在嵌入文档中没有名称空间前缀。一次展示之后,我觉得自己很愚蠢你的样品做得很好。我只需要添加一个名称空间声明。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fha="http://xmlns.oracle.com/F17CTOTALScorecard/F17CTOTALScorecard/F17CTOTALScorecard"
xmlns:client="http://xmlns.oracle.com/F17CTOTALScorecard/F17CTOTALScorecard/F17CTOTALScorecard">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/fha:TOTALRequest-Response-Keys">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:f17="http://xmlns.oracle.com/F17CTOTALScorecard/F17CTOTALScorecard/F17CTOTALScorecard">
<soapenv:Body>
<xsl:apply-templates select="fha:TOTALRequest-Response/client:process"/>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
<xsl:template match="client:*">
<xsl:element name="fha:{local-name()}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>