Javascript 我的xpath有什么问题?
我有以下xml文档:Javascript 我的xpath有什么问题?,javascript,xml,xpath,Javascript,Xml,Xpath,我有以下xml文档: <Item> <DataContainer> <ComponentId>12</ComponentId> <ChangeTo>undefined</ChangeTo> <OperationCode>ADD</OperationCode> <ComponentTableName>invFeatureType</Component
<Item>
<DataContainer>
<ComponentId>12</ComponentId>
<ChangeTo>undefined</ChangeTo>
<OperationCode>ADD</OperationCode>
<ComponentTableName>invFeatureType</ComponentTableName>
<ComponentColName>invFeatureTypeId</ComponentColName>
<Type>Feature</Type>
<PlanFeatureName>Long Distance</PlanFeatureName>
<ToPlanFeatureName/>
</DataContainer>
</Item>
我得到以下错误:
未捕获的DomeException:未能对“文档”执行“评估”:字符串“/ITEM/DATACONTAINER[CHANGETO='12'和TYPE='FEATURE']”不是有效的XPath表达式
有什么想法吗?也许你只是把
更改为与组件ID
混淆了?仅给定显示的文档片段,以下XPath表达式将检索单个DataContainer
元素:
/Item/DataContainer[ComponentId = '12' and Type='Feature']
很明显,你没有表现出一个——这总是一个坏主意
关于计算路径表达式时出现的错误:如果您实际尝试计算一个全大写的路径表达式,它将不起作用。XML和XPath区分大小写,在某些实现中,逻辑和不能是大写
如果不是,可能是因为您的XPath库或框架只支持XPath规范的一小部分。例如,它可能不支持谓词(介于[
和]
之间的部分)
对评论的反应:
在开头添加/
或/
。-埃尔鲁尔
不,即使没有/
或/
路径表达式也是有效的,并且不会返回您描述的错误类型。在开始时添加/
或/
。我添加了它,但它没有解决问题请更新您的问题,您的示例上没有集合
标记,而且你还没有用建议更新它。它现在是否也给出了相同的错误?我更新了我的问题,它集合是错误编写的。我仍然面临相同的问题我需要ComponentId,如果它不匹配,它应该返回null而不是错误。对吗???@Abadi空结果集的返回值是特定于实现的。看起来您正在将XPath与Javascript一起使用,但没有显示任何代码。请告诉我您是否确实在路径表达式中使用了大写的和
。
/Item/DataContainer[ComponentId = '12' and Type='Feature']