gpt4 book ai didi

c# - C# webservice 和/或 xpath 查询的 xml 输出问题

转载 作者:行者123 更新时间:2023-12-03 17:20:18 26 4
gpt4 key购买 nike

我构建的 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/">test0101@dev01.local</email>
<password xmlns="http://dev01/">somepassword</password>
</xml>

因此,当我尝试通过执行/xml/result 来提取结果值时它不起作用,我无法读出该值或进行调试,因为 Nintex 不会让我......我尝试了很多不同的 xpath 查询,但没有给出我想要的结果,知道我做错了什么吗?

这可能是一个菜鸟问题,但我真的被困在这里:-(

最佳答案

我对 Nintex 产品一无所知,但您的问题是您需要告知您正在使用的任何 XPath 处理器有关“http://dev01/”命名空间的信息。

通常这是通过使用 namespace 管理器对象并关联 XPath 处理器或在执行 XPath 时作为参数传递来完成的。

命名空间管理器包含一个命名空间列表和用于它们的别名。因此,在本例中,您可以将别名“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);

关于c# - C# webservice 和/或 xpath 查询的 xml 输出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1340092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com