解析XML - 从XML树获取价值

时间:2012-03-13 00:02:17

标签: xml web-services sharepoint-2010 xml-parsing nintex-workflow

我正在使用Nintex工作流程。我添加了Web Service并配置为从GetUserProfile.asmx检索数据。添加网络服务nintex后,让你看看肥皂是怎么样的。这是肥皂。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <GetUserPropertyByAccountName xmlns="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService">
            <accountName>{WorkflowVariable:tmpApprover}</accountName>
            <propertyName>PreferredName</propertyName>
        </GetUserPropertyByAccountName>
    </soap:Body>
</soap:Envelope>

Nintex还让您了解结果在xml中的表现:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <GetUserPropertyByAccountNameResponse xmlns="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService">
      <GetUserPropertyByAccountNameResult>
        <IsPrivacyChanged>false</IsPrivacyChanged>
        <IsValueChanged>false</IsValueChanged>
        <Name>PreferredName</Name>
        <Privacy>Public</Privacy>
        <Values>
          <ValueData>
            <Value xsi:type="xsd:string">Holmberg, Nancy</Value>
          </ValueData>
        </Values>
      </GetUserPropertyByAccountNameResult>
    </GetUserPropertyByAccountNameResponse>
  </soap:Body>
</soap:Envelope> 

我添加了一个“查询XML”,并尝试从用户个人资料数据库中将xpath的一些变体发送到PreferredName,它给了我“falsefalsePreferredNamePublicHolmberg,Nancy”。

以下是我尝试的一些代码

/soap:Envelope/soap:Body/defaultNS:GetUserPropertyByAccountNameResponse/defaultNS:GetUserPropertyByAccountNameResult/defaultNS:Values/defaultNS:ValueData/defaultNS:Value/@xsi:type

//defaultNS:xml/defaultNS:Values/defaultNS:ValueData/defaultNS:Value

//defaultNS:xml/defaultNS:Name

//@PreferredName 

但他们都给我falsefalsePreferredNamePublicHolmberg,Nancy。我应该给我Holmberg,Nancy。

请建议。

1 个答案:

答案 0 :(得分:0)

我遵循了这一点,它解决了这个问题。

如果包含xml的变量名为textXML,则在查询XML操作中,您可以插入对工作流变量的引用,它看起来像这样:

<xml xmlns="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService">
  {WorkflowVariable:textXML}

</xml>