使用XSLT从具有多个属性的节点检索XML值
我试图使用xslt获取具有多个属性的xml节点的值 下面是xml的一个片段:使用XSLT从具有多个属性的节点检索XML值,xml,xslt,Xml,Xslt,我试图使用xslt获取具有多个属性的xml节点的值 下面是xml的一个片段: <?xml version="1.0" encoding="UTF-8"?> <wd:Report_Data> <wd:Report_Entry> <wd:Account>Accrued Deferred Compensation</wd:Account> <wd:Summary_Level_01 wd:Des
<?xml version="1.0" encoding="UTF-8"?>
<wd:Report_Data>
<wd:Report_Entry>
<wd:Account>Accrued Deferred Compensation</wd:Account>
<wd:Summary_Level_01 wd:Descriptor="Descriptor_Text">
<wd:ID wd:type="Summary_ID" wd:parent_id="UR_CHART_OF_ACCOUNTS" wd:parent_type="Account_ID">DESIRED VALUE</wd:ID>
</wd:Ledger_Account_Summary_Level_01>-
</wd:Report_Entry>
<Report_Data>
应计递延薪酬
期望值
-
我想把文本“期望值”输入到我的输出中。
我可以获取如下值:
<xsl:value-of select="wd:Summary_Level_01/@wd:Descriptor"/>
如何获取所需的值
我尝试过使用它(但这只适用于单属性元素):
这可能是xslt/xml处理器的问题吗?您问题中的示例xml名称空间格式不正确,因为
wd:
前缀没有名称空间绑定,但是,假设真正的XML是名称空间格式良好的,并且样式表中映射到相同名称空间URI的前缀与源文档中的相同,那么您可能需要如下内容:
<xsl:value-of select="wd:Summary_Level_01/wd:ID[@wd:type='Summary_ID']"/>
wd:ID
是一个元素,而不是一个属性,因此它不需要@
前缀。您问题中的示例XML不是名称空间格式良好的,因为wd:
前缀没有名称空间绑定,但是,假设真正的XML是名称空间格式良好的,并且样式表中映射到相同名称空间URI的前缀与源文档中的相同,那么您可能需要如下内容:
<xsl:value-of select="wd:Summary_Level_01/wd:ID[@wd:type='Summary_ID']"/>
wd:ID
是一个元素,而不是一个属性,因此它不需要@
前缀