Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XPath:如何引用元素的所有子元素而不使用*(星号)?_Xpath_Oracle11g_Jdeveloper_Oracle Soa - Fatal编程技术网

XPath:如何引用元素的所有子元素而不使用*(星号)?

XPath:如何引用元素的所有子元素而不使用*(星号)?,xpath,oracle11g,jdeveloper,oracle-soa,Xpath,Oracle11g,Jdeveloper,Oracle Soa,我目前正在从事一个Oracle SOA项目,在将传入消息映射到另一个消息时遇到问题。我是SOA和Oracle工具集的新手。我使用的是JDeveloper,以下是“关于”选项卡中列出的版本: “我的传入消息”是一条错误消息,用于包装来自其他服务的失败消息。该消息的格式如下: <Error> <code /> <service /> ... <Message> [ORIGINAL MESSAGE HERE]

我目前正在从事一个Oracle SOA项目,在将传入消息映射到另一个消息时遇到问题。我是SOA和Oracle工具集的新手。我使用的是JDeveloper,以下是“关于”选项卡中列出的版本:

“我的传入消息”是一条错误消息,用于包装来自其他服务的失败消息。该消息的格式如下:

<Error>
   <code />
   <service />
   ...
   <Message>
       [ORIGINAL MESSAGE HERE]
   </Message>
</Error>
这样做的问题是消息标记也会被复制,而我真正想要的只是它的内容。我尝试使用
/error-v1:error/Message/*
,但JDeveloper生成一个错误,指出
*
不是有效节点。如果我忽略错误并进行部署,则在映射发生时,流程会出错。我还尝试使用
/error-v1:error/Message/child::*
,但这会产生相同的错误


我在网上找到的所有参考资料都说上述方法应该有效,但我似乎找不到一个同样适用于SOA的解决方案。建议?

或许可以尝试
/error-v1:error/Message/text()
-您需要
Message
标记的内部文本。

尝试:
/error-v1:error/Message/node()

我很想从这个问题中删除标记“XPath”,因为它似乎是关于某个特定产品所支持的XPath的一些非标准变体的问题。了解XPath并不能让您回答这个问题。我的想法是JDeveloper可能支持较旧的版本,但我还是将其包括在内,因为对话框专门提示输入XPath表达式。不幸的是,我从JDeveloper收到一个错误,指出
节点
不是有效的元素。我尝试了
text()
,但两者似乎都不起作用。我可能需要找一位SOA专家,因为Oracle SOA可能正在使用非标准变体。不幸的是,这只会产生一个空字符串。如果删除
/text()
,我会看到序列化的XML(

<Error>
   <code />
   <service />
   ...
   <Message>
       [ORIGINAL MESSAGE HERE]
   </Message>
</Error>
/error-v1:Error/Message