其實PowerDesigner的pdm文件是一個xml文件來的,我們可以當作讀取xml文件一樣的方式來讀pdm文件。
其中,我們需要注意的是:如果我們不使用命名空間管理器的話,系統會提示如下錯誤:
需要命名空間管理器或 XsltContext。此查詢具有前綴、變量或用戶定義的函數。
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.Xml.XPath.XPathException: 需要命名空間管理器或 XsltContext。此查詢具有前綴、變量或用戶定義的函數。
因此,我們讀取pdm文件代碼如下:
代碼
xmlDoc = new XmlDocument();
xmlDoc.Load(pdmFile);
xmlnsManager = new XmlNamespaceManager(xmlDoc.NameTable);
xmlnsManager.AddNamespace("a", "attribute");
xmlnsManager.AddNamespace("c", "collection");
xmlnsManager.AddNamespace("o", "object");
XmlNode xnTables = xmlDoc.SelectSingleNode("//" + cTables, xmlnsManager);
其實C#讀取pdm文件難度並不大,只是一種體力活,為了後人少走點彎路,我下面公布一下代碼:
ColumnInfo.cs(字段類)
代碼
namespace Piggy.Common.PDM
{
//字段信息
public class ColumnInfo
{
public ColumnInfo()
{ }
string columnId;
public string ColumnId
{
get { return columnId; }
set { columnId = value; }
}
string objectID;
public string ObjectID
{
get { return objectID; }
set { objectID = value; }
&nb