我构建的 Web 服务默认返回 XML,我添加了自己的 XML 节点,需要在不同的应用程序 (Nintex) 中查询。我用 Xpath 来做到这一点。但我似乎无法得到我想要的结果......
public class Service1 : System.Web.Services.WebService
{
public struct aduser
{
public String result;
public String username;
public String email;
public String password;
}
[WebMethod]
public aduser CreateADUser(string domain, ...
...
...
...
user.result = "Succes";
user.username = loginName;
user.email = emailAddress;
user.password = password;
return user;
}
我得到的结果是
<xml>
<result xmlns="http://dev01/">Succes</result>
<username xmlns="http://dev01/">test0101</username>
<email xmlns="http://dev01/"><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e397869097d3d2d3d2a3878695d3d2cd8f8c80828f" rel="noreferrer noopener nofollow">[email protected]</a></email>
<password xmlns="http://dev01/">somepassword</password>
</xml>
因此,当我尝试通过执行/xml/result 来提取结果值时,它不起作用,我无法读出该值或进行调试,因为 Nintex 不允许我...我已经尝试过很多不同的 xpath 查询,但没有一个给出我想要的结果,知道我做错了什么吗?
这可能是一个菜鸟问题,但我真的被困在这里:-(
请您参考如下方法:
我对 Nintex 产品一无所知,但您的问题是您需要告知您正在使用的任何 XPath 处理器有关“http://dev01/ ”命名空间的信息。
通常,这是通过使用 namespace 管理器对象并关联 XPath 处理器或在执行 XPath 时作为参数传递来完成的。
namespace 管理器保存 namespace 及其使用的别名的列表。因此,在此示例中,您可以将别名“a”与“http://dev01/”相关联。您的 XPath 将变为:- /xml/a:result。
这里的一个想法是它在 C# 中的样子(我不知道如何将其移植到你的 Nintex 工具)。
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("a", "http://dev01/");
XmlNode resultNode = doc.SelectSingleNode("/xml/a:result", nsmgr);


