ServiceNow XML Web服务 - 节点命名

时间:2012-04-18 09:31:03

标签: c# xml web-services servicenow

我正在创建一个与ServiceNow(自定义报告工具)配合使用的应用

它被配置为使用描述here的demo12和XML服务。

当我提出此请求时

https://demo12.service-now.com/incident_list.do?XML&sysparm_query=opened_at%3E2012-04-17%2000:00:00%5Eopened_at%3C2012-04-18%2000:00:00%5E&sysparm_view=

在响应XML中,我不仅看到<incident>个节点,还看到<u_zprototype_incidents>

获取节点名称的XPath是

distinct-values(/xml/*/name(.))

,结果是(用户友好格式化)

<XdmValue>
  <XdmAtomicValue>u_zprototype_incidents</XdmAtomicValue>
  <XdmAtomicValue>incident</XdmAtomicValue>
</XdmValue>

不确定,如果这是应该如何显示。

是否有其他方法(额外的URI参数等)来获取有效的XML(仅<incident>个节点)?

我知道我可以使用/xml/*[contains(name(.),'incident')][sys_id='my GUID']来获取所需的节点。但我认为它比/xml/incident[sys_id='my GUID']消耗更多的CPU时间。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

对于它的价值,在demo12网站上有一些不典型的东西。默认情况下,不应该有名为“u_zprototype_incidents”的父元素。创建了一个自定义表,扩展了名为“u_zprototype_incidents”的“事件”表。

如果您只想限制基本“事件”表中的记录,我建议您只需为“sys_class_name = incident”添加新过滤器。给你这个网址:

https://demo12.service-now.com/incident_list.do?XML&sysparm_query=opened_at%3E2012-04-17%2000:00:00%5Eopened_at%3C2012-04-18%2000:00:00%5E^sys_class_name=incident&sysparm_view=

...您可以使用/xml/incident[sys_id='my GUID']