<ContentItem xmlns="http://endeca.com/schema/content/2008" type="GenericMarketingContent">
<TemplateId>OneRecordBanner</TemplateId>
<Name>One Record Banner</Name>
<Property name="title">
<String>Recommended</String>
</Property>
<Property name="image">
<String>green.gif</String>
</Property>
<Property name="alt_text">
<String>Image Alt text</String>
</Property>
<Property name="record_list">
<RecordSelection xmlns="http://endeca.com/schema/content/xtags/2010">
<RecordList>
<Record key="pp500231036301401000091" aggregationKey="grp_id">
<aggregationValue>pp5002310363</aggregationValue>
<label>Deer Stags Manager Mens Slip On Shoes</label>
</Record>
</RecordList>
<recordLimit>1</recordLimit>
</RecordSelection>
</Property>
</ContentItem>
/ContentItem/Property[@name='record_list']/RecordSelection/RecordList/Record/aggregationValue/text()没有获取值。我能够获得其他属性标签的所有其他值,但不能获得这个。有人告诉我哪里出错了吗?
答案 0 :(得分:1)
元素RecordSelection
及其后代与XML文档的其余部分位于不同的名称空间中。
如果您使用的是xslt 2.0,则可以使用此xpath:
/ContentItem/Property[@name='record_list']/*:RecordSelection/*:RecordList/*:Record/*:aggregationValue
一个(可能更干净的)解决方案是使用前缀声明命名空间,以便您可以使用此xpath:
/w1:ContentItem/w1:Property[@name='record_list']/w2:RecordSelection/w2:RecordList/w2:Record/w2:aggregationValue
w1
为http://endeca.com/schema/content/2008
的前缀,w2
为http://endeca.com/schema/content/xtags/2010
(请注意,您不需要最终/text()
)
答案 1 :(得分:1)
RecordSelection及其子节点位于不同的名称空间中,并且您没有考虑到它。
修复此问题的丑陋黑客版本将涉及一堆本地名称调用。优雅的版本是在XSLT中定义命名空间。