My XML file is As Below:
<?xml
version="1.0" encoding="UTF-8" standalone="no"?>
<Fields>
<Field ID="1" Datatype="Option" Enabled="1" FieldClass="Normal" Name="Document
Type" CaptionML="ENU=Document
Type"
OptionString="Quote,Order,Invoice,Credit
Memo,Blanket Order,Return Order" OptionCaptionML="ENU=Quote,Order,Invoice,Credit
Memo,Blanket Order,Return Order" BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="1" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" ExtendedDatatype="None"/>
<Field ID="2" Datatype="Code" DataLength="20" Enabled="1" FieldClass="Normal" Name="Sell-to
Customer No."
CaptionML="ENU=Sell-to
Customer No."
BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="0" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" ExtendedDatatype="None">
<TableRelations
TableID="18" TableName="Customer" FieldID="0"/>
</Field>
<Field ID="3" Datatype="Code" DataLength="20" Enabled="1" FieldClass="Normal" Name="Document
No." CaptionML="ENU=Document
No." BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="1" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" ExtendedDatatype="None">
<TableRelations
TableID="36" TableName="Sales
Header" FieldID="3">
<Filters
FilterGroup="0" FieldID="1" FilterType="FIELD" FilterValue="1"/>
</TableRelations>
</Field>
<Field ID="4" Datatype="Integer" Enabled="1" FieldClass="Normal" Name="Line
No." CaptionML="ENU=Line
No." BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="1" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" ExtendedDatatype="None"/>
<Field ID="5" Datatype="Option" Enabled="1" FieldClass="Normal" Name="Type" CaptionML="ENU=Type" OptionString="
,G/L Account,Item,Resource,Fixed Asset,Charge (Item)" OptionCaptionML="ENU="
,G/L Account,Item,Resource,Fixed Asset,Charge (Item)"" BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="1" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" OnValidate="134" ExtendedDatatype="None"/>
<Field ID="6" Datatype="Code" DataLength="20" Enabled="1" FieldClass="Normal" Name="No." CaptionML="ENU=No." BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="1" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" OnValidate="135" ExtendedDatatype="None">
<TableRelations
TableID="7" TableName="Standard
Text" FieldID="0">
<Conditions
FieldID="5" ConditionType="CONST" ConditionValue="0"/>
</TableRelations>
<TableRelations
TableID="15" TableName="G/L
Account" FieldID="0">
<Conditions
FieldID="5" ConditionType="CONST" ConditionValue="1"/>
</TableRelations>
<TableRelations
TableID="27" TableName="Item" FieldID="0">
<Conditions
FieldID="5" ConditionType="CONST" ConditionValue="2"/>
</TableRelations>
<TableRelations
TableID="156" TableName="Resource" FieldID="0">
<Conditions
FieldID="5" ConditionType="CONST" ConditionValue="3"/>
</TableRelations>
<TableRelations
TableID="5600" TableName="Fixed
Asset" FieldID="0">
<Conditions
FieldID="5" ConditionType="CONST" ConditionValue="4"/>
</TableRelations>
<TableRelations
TableID="5800" TableName="Item
Charge" FieldID="0">
<Conditions
FieldID="5" ConditionType="CONST" ConditionValue="5"/>
</TableRelations>
</Field>
<Field ID="5800" Datatype="Boolean" Enabled="1" FieldClass="Normal" Name="Allow
Item Charge Assignment" CaptionML="ENU=Allow
Item Charge Assignment" BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="1" InitValue="1" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" OnValidate="206" ExtendedDatatype="None"/>
<Field ID="5801" Datatype="Decimal" Enabled="1" FieldClass="FlowField" Name="Qty.
to Assign"
CaptionML="ENU=Qty.
to Assign"
BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="0" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" ExtendedDatatype="None">
<CalculationFormula
FlowType="Sum" ReverseSign="0" Table="5809" Field="8">
<TableFilters>
<Filter
FilterGroup="0" FieldID="1" FilterType="FIELD" ValueIsFilter="0" OnlyMaxLimit="0" FilterValue="1"/>
<Filter
FilterGroup="0" FieldID="2" FilterType="FIELD" ValueIsFilter="0" OnlyMaxLimit="0" FilterValue="3"/>
<Filter
FilterGroup="0" FieldID="3" FilterType="FIELD" ValueIsFilter="0" OnlyMaxLimit="0" FilterValue="4"/>
</TableFilters>
</CalculationFormula>
</Field>
<Field ID="5802" Datatype="Decimal" Enabled="1" FieldClass="FlowField" Name="Qty.
Assigned"
CaptionML="ENU=Qty.
Assigned"
BlankNumbers="DontBlank" BlankZero="0" SignDisplacement="0" Editable="0" NotBlank="0" Numeric="0" DateFormula="0" ClosingDates="0" Title="0" ValidateTableRelation="1" TestTableRelation="1" ExtendedDatatype="None">
<CalculationFormula
FlowType="Sum" ReverseSign="0" Table="5809" Field="9">
<TableFilters>
<Filter
FilterGroup="0" FieldID="1" FilterType="FIELD" ValueIsFilter="0" OnlyMaxLimit="0" FilterValue="1"/>
<Filter
FilterGroup="0" FieldID="2" FilterType="FIELD" ValueIsFilter="0" OnlyMaxLimit="0" FilterValue="3"/>
<Filter
FilterGroup="0" FieldID="3" FilterType="FIELD" ValueIsFilter="0" OnlyMaxLimit="0" FilterValue="4"/>
</TableFilters>
</CalculationFormula>
</Field>
</Fields>
Searching
Code
///
<summary>
///
/// </summary>
/// <param name="XMLPath">File
Path</param>
/// <param name="SearchNode">Search
Node</param>
/// <param name="AttributeName">Attribute
Node</param>
/// <param name="AttributeValue">Attribute
Value</param>
/// <param name="Connectionstring">Database
ConnectionString</param>
private void
InsertintoTableRelationInfo(string XMLPath,
string SearchNode,
string AttributeName, string
AttributeValue, string Connectionstring)
{
#region Table
RelationInfo
XmlDocument
doc = new
XmlDocument();
doc.Load(XMLPath);
System.Text.StringBuilder
str = new
StringBuilder();
XmlNodeList nodes =
doc.GetElementsByTagName(SearchNode);
foreach (XmlNode
node in nodes)
{
if (node.HasChildNodes)
{
foreach (XmlAttribute
attribute in node.Attributes)
{
if (attribute.Name == AttributeName)
{
if (attribute.Value == AttributeValue)
{
for (int
i = 0; i < node.ChildNodes.Count; i++)
{
string name
= node.ChildNodes[i].Name;
/*
* Check ChildNode
*/
if (name ==
"TableRelations")
{
foreach
(XmlAttribute chieldAttribute
in node.ChildNodes[i].Attributes)
{
/*
* Check ChildNode Attribute
*/
if (chieldAttribute.Name
== "TableID")
{
_TableRelationsTableID =
Convert.ToInt32(chieldAttribute.Value);
}
if (chieldAttribute.Name
== "TableName")
{
_TableName = chieldAttribute.Value;
}
if (chieldAttribute.Name
== "FieldID")
{
_TableFieldID =
Convert.ToInt32(chieldAttribute.Value);
}
}
_CalculationFormulaFlowType =
"TableRelation";
using (dbNavXmlDataContext
db = new
dbNavXmlDataContext(Connectionstring))
{
db.USP_INSERT_TableRelationInfo(_ObjectType, _ObjectID, _ID,
Convert.ToInt32(AttributeValue),
_TableRelationsTableID, _TableName, _TableFieldID, _CalculationFormulaFlowType,
_ReverseSign);
}
}
if (name ==
"CalculationFormula")
{
foreach
(XmlAttribute chieldAttribute
in node.ChildNodes[i].Attributes)
{
if (chieldAttribute.Name
== "FlowType")
{
_CalculationFormulaFlowType =
chieldAttribute.Value;
}
if (chieldAttribute.Name
== "ReverseSign")
{
_ReverseSign =
Convert.ToInt32(chieldAttribute.Value);
}
}
using (dbNavXmlDataContext
db = new
dbNavXmlDataContext(Connectionstring))
{
db.USP_INSERT_TableRelationInfo(_ObjectType, _ObjectID, _ID,
Convert.ToInt32(AttributeValue), _TableRelationsTableID,
_TableName, _TableFieldID, _CalculationFormulaFlowType, _ReverseSign);
}
}
}
}
}
}
}
#endregion
}
}