SelectSingleNode throwing exception:

A

Anup Daware

Hi,
I have following XML which I need to modify and invoke a http request
I need to select a node but I am getting "Namespace Manager or
XsltContext needed. This query has a prefix, variable, or user-defined
function." Error
I am trying to access the <CUSTOMER/> tag with following code:


requestXmlDocument.SelectSingleNode("/SOAP-ENV:Envelope/SOAP-ENV:Body/
m:MT_MaterialSearchRequest/" + XmlNodeName.CUSTOMER).InnerText
= some value;

Please consider following tags before giving answer:
· <SOAP-ENV:Envelope
· <SOAP-ENV:Body
· <m:MT_MaterialSearchRequest


Following is the Xml:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/
envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<m:MT_MaterialSearchRequest xmlns:m="http://br.eu/tl/v2">
<CUSTOMER/>
<SALES_ORG/>
<DISTR_CHAN/>
<DIVISION/>
<SEARCH_RESULT_SIZE/>
<DEFAULT_SORTING/>
<RESULT_TYPE>R</RESULT_TYPE>
<REQ_DATE/>
<REQ_QTY/>
<SALES_UNIT/>
<SEARCH_PARAM_IN>
<AGG_SEARCH/>
<COMMERCIAL_CODE/>
<DESCRIPTION/>
<WIDTH/>
<SERIE/>
<RIM/>
<LOAD_INDEX/>
<SPEED_SYMBOL/>
<PATTERN/>
<TUBE_TYPE/>
<BRAND/>
<HIERARCHY/>
</SEARCH_PARAM_IN>
<VISIBILITY_ITEM_IN>
<ITEM>
<ITM_NUMBER/>
<MATERIAL idtype=""/>
<REQ_QTY/>
<SALES_UNIT/>
<REQ_DATE/>
</ITEM>
</VISIBILITY_ITEM_IN>
</m:MT_MaterialSearchRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


I think I have to use XmlNamespaceManager, but I am not getting how do
I use it in this case when there are following three tags in the
xmldocument.
· <SOAP-ENV:Envelope
· <SOAP-ENV:Body
· <m:MT_MaterialSearchRequest



Thanks in advance,
Anup
 
B

bruce barker

if you nodes have a namespace, you need to pass the namespace manger
along with the path

XmlNamespceManger ns = new XmlNamespceManger(
requestXmlDocument.NameTable);
ns.AddNamespace("SOAP-ENV","http://schemas.xmlsoap.org/soap/envelope/");
ns.AddNamespace("m","http://br.eu/tl/v2");
requestXmlDocument.SelectSingleNode(
"/SOAP-ENV:Envelope/SOAP-ENV:Body/m:MT_MaterialSearchRequest/" +
XmlNodeName.CUSTOMER,
ns).InnerText = some value;

-- bruce (sqlwork.com)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top