【发布时间】:2021-06-15 23:21:07
【问题描述】:
我正在尝试使用具有编码值的数据转换 XML 文档。我有第二个外部文档,这些值已解码。我想搜索外部文件以将处理文件中的元素值(QuantityUnitOfMeasure/Code)与外部文档中的元素值(root/row/NCItCode)匹配,以最终返回兄弟元素(/root/row/NCIDefinition)外部文件。这不起作用,XSLT 的新手。
代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:variable name="externalDoc" select="document('NCPDP.xml')"/>
<xsl:for-each select="Quantity">
<span>Quantity Unit Of Measure Code : </span>
<span> <xsl:value-of select="QuantityUnitOfMeasure/Code"/> </span>
<br></br>
<xsl:for-each select="$externalDoc/root/row">
<xsl:if test="NCItCode=QuantityUnitOfMeasure/Code">
<span> <xsl:value-of select="NCIDefinition"/> </span>
</xsl:if>
</xsl:for-each>
处理 XML:
<Quantity>
<Value>300</Value>
<CodeListQualifier>38</CodeListQualifier>
<QuantityUnitOfMeasure>
<Code>C48672</Code>
</QuantityUnitOfMeasure>
</Quantity>
外部 XML 文件 (NCPDP.xml):
<root>
<row>
<NCItCode>C48672</NCItCode>
<NCPDPPreferredTerm>Schedule I Substance</NCPDPPreferredTerm>
<NCIDefinition>
A category of drugs not considered legitimate for medical use.
</NCIDefinition>
</row>
<root>
预期结果:
Quantity Unit Of Measure Code : C48672
A category of drugs not considered legitimate for medical use.
【问题讨论】:
-
请张贴minimal reproducible example 显示 XML 文档和预期输出的示例。还要澄清这里需要应用的逻辑。
-
需要一些细节,例如是调用应用程序已知的外部文档的 URI,还是包含在“主”文档的内容中。无论哪种方式,请阅读 document() 函数。
-
它变得有点更清晰了。现在的问题是:您的处理器是否支持 XSLT 2.0?
-
我相信我需要假设没有。仅限 XSLT 1.0
-
为什么假设什么时候可以检查:stackoverflow.com/a/25245033/3016153