首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XPath选择值中包含特定标记的元素

使用XPath选择值中包含特定标记的元素
EN

Stack Overflow用户
提问于 2010-07-07 06:24:14
回答 2查看 715关注 0票数 2

我有以下XML:

代码语言:javascript
复制
        <ZMARA SEGMENT="1">
            <MATERIAL>000000000030001004</MATERIAL>
            <PRODUCT_GROUP>14000IAA</PRODUCT_GROUP>
            <PRODUCT_GROUP_DESC>HER 30 AR NEW Size</PRODUCT_GROUP_DESC>
            <CLASS_CODE>I046</CLASS_CODE>
            <CLASS_CODE_DESC>Heritage 30</CLASS_CODE_DESC>
            <CHARACTERISTICS_01>,001,PLANNING_ALERT_PERCENTAGE, 50.000,PLANNI</CHARACTERISTICS_01>
            <CHARACTERISTICS_02>X,001,COLOR_ATTRIBUTE,Weathered Wood,WEWD,Col</CHARACTERISTICS_02>
            <CHARACTERISTICS_03>,001,ARMA_UOM,SALES SQUARE,SSQ,ARMA UNIT OF M</CHARACTERISTICS_03>
            <CHARACTERISTICS_04>,001,ARMA_A_CATEGORY,05-Below 260 Lam/Multi-l</CHARACTERISTICS_04>
        </ZMARA>

使用XPath时,我需要选择其值包含COLOR_ATTRIBUTE标记的CHARACTERISTICS_XX元素。它不会总是characteristics_02。谢谢你的帮助。我是XPath的新手。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-07 06:58:11

这看起来像是从sap idoc中提取的,你可能会很幸运,因为字段名不是6个字符长度的缩写:)

spinon给出的答案是正确的,但是如果有另一个元素包含文本'COLOR_ATTRIBUTE',这将给出更具体的匹配:

代码语言:javascript
复制
/ZMARA/*[starts-with(local-name(.), 'CHARACTERISTICS_')][contains(.,'COLOR_ATTRIBUTE')]

另一个建议是避免'//‘表达式,如果你知道ZMARA元素可以出现在哪里,在上面的表达式中,ZMARA只会被作为根元素进行搜索,这会更有性能。

票数 6
EN

Stack Overflow用户

发布于 2010-07-07 06:44:25

这应该是可行的:

代码语言:javascript
复制
//ZMARA/*[contains(.,'COLOR_ATTRIBUTE')]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3190685

复制
相关文章

相似问题

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