Estou criando um xml com vários namespace. Estou precisando adicionar um nó filho que tem outro namespace, porém não achei como fazer isso.
O método XPathAddNode tem como adicionar um nó filho, mas não informa como fazer se o filho é de outro namespace.
Tentei assim mas não deu certo:
#include 'protheus.ch'
#include 'parmtype.ch'
user function tsttxml()
Local nCont
Local oXml := TXMLManager():New()
Local cXml := ""
cXml += '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
cXml += '<xdr:wsDr xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
cXml += '</xdr:wsDr>'
oXml:Parse(cXml)
aNs := oXml:XPathGetRootNsList()
For nCont:=1 to Len(aNs)
oXml:XPathRegisterNs( aNs[nCont][1], aNs[nCont][2] )
Next
ConOut(oXml:XPathAddNode( "/xdr:wsDr", "oneCellAnchor", "" )) //.T.
ConOut(oXml:XPathAddNode( "/xdr:wsDr/xdr:oneCellAnchor[last()]", "pic", "" )) //.T.
ConOut(oXml:XPathAddNode( "/xdr:wsDr/xdr:oneCellAnchor[last()]/xdr:pic", "nvPicPr", "" )) //.T.
ConOut(oXml:XPathAddNode( "/xdr:wsDr/xdr:oneCellAnchor[last()]/xdr:pic/xdr:nvPicPr", "cNvPicPr", "" )) //.T.
ConOut(oXml:XPathAddNode( "/xdr:wsDr/xdr:oneCellAnchor[last()]/xdr:pic/xdr:nvPicPr/xdr:cNvPicPr", "a:picLocks", "" )) //.T., Não dar certo, pois ele fica <xdr:a:picLocks/>
ConOut(oXml:XPathAddAtt( "/xdr:wsDr/xdr:oneCellAnchor[last()]/xdr:pic/xdr:nvPicPr/xdr:cNvPicPr/a:picLocks", "noChangeAspect", "1" )) //.F.,Erro
ConOut(oXml:Save2String())
return