我試圖從dtsx中的可執行對象中提取特定值。試圖從dtsx xml文件中檢索信息
我想要諸如SQLStatementSource
,ObjectName
和Connection
之類的東西。我似乎無法做到。我正在使用XMLDocument
和GetElementsByTagName
。這是我的整個代碼,用DTS:ObjectData
,我可以得到回報。如果我在其中使用了SQLStatementSource
,我沒有任何結果。
using System;
using System.Xml;
public class XMLApp
{
public void DisplayResults(String strSQLSrc)// String strConn, String strObjNm,
{
// Do something with strFirst and strLast.
// ...
Console.WriteLine("{0}", strSQLSrc); //strConn, strObjNm,
}
public void ProcessXML(String xmlText)
{
XmlDocument _doc = new XmlDocument();
_doc.Load(xmlText);// to read from a file.
XmlNodeList _SQLSrc = _doc.GetElementsByTagName("DTS:ObjectData");
for (int _i = 0; _i < _SQLSrc.Count; ++_i)
{
DisplayResults(_SQLSrc[_i].InnerText);
}
}
public static void Main(String[] args)
{
XMLApp _app = new XMLApp();
_app.ProcessXML("C:\\users\\dsnos\\onedrive\\documents\\LoadingProviderContracts_new.dtsx");
}
}// end XMLApp
這是dtsx文件的一部分,但不是頂層。
<DTS:Executables>
<DTS:Executable
DTS:refId="Package\fill mi with empty string where null"
DTS:CreationName="Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask, Microsoft.SqlServer.SQLTask, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
DTS:Description="Execute SQL Task"
DTS:DTSID="{E4CA09C6-DA3D-4297-BC7F-1F2EEA35036F}"
DTS:ExecutableType="Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask, Microsoft.SqlServer.SQLTask, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
DTS:LocaleID="-1"
DTS:ObjectName="fill mi with empty string where null"
DTS:TaskContact="Execute SQL Task; Microsoft Corporation; SQL Server 2012; © 2007 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1"
DTS:ThreadHint="0">
<DTS:Variables />
<DTS:ObjectData>
<SQLTask:SqlTaskData
SQLTask:Connection="{30817305-3556-4AF7-BB5E-0E9BA18B6538}"
SQLTask:SqlStatementSource="update wprovidercontractstemp set middlename = '' where middlename is null" xmlns:SQLTask="www.microsoft.com/sqlserver/dts/tasks/sqltask" />
</DTS:ObjectData>
</DTS:Executable>
</DTS:Executables>
我可以得到ObjectData
,但它只是一串連接在一起的值。
任何指針?我試圖閱讀關於XmlDocument
的文檔,這對我來說是愚蠢的。