Wie kan mij helpen.
Ben momenteel bezig met het maken van een progje dat rules moet kunnen wegschrijven naar een XML-file. Ik krijg alleen iets niet voor elkaar. Zie voorbeeld van een goede Rule in XML-file:
<RULE Priority="B" Name="Wakkerworden">
<TERM Operator="AND">
<OPERAND>
<DEVICEREF DeviceID="T1"></DEVICEREF>
</OPERAND>
<OPERAND>
<VALUE>2000</VALUE>
</OPERAND>
</TERM>
<TRUECLAUSE>
<ACTION>
<DEVICEREF DeviceID="A1"></DEVICEREF>
<VALUE>10</VALUE>
</ACTION>
</TRUECLAUSE>
<FALSECLAUSE>
<ACTION>
<DEVICEREF DeviceID="A1"></DEVICEREF>
<VALUE>100</VALUE>
</ACTION>
</FALSECLAUSE>
</RULE>
Nu heb ik het probleem dat ik bij het toevoegen van een childnode type <TERM> de volgende regel krijg in mijn XML.
<RULE Priority="None" Name="None"><TERM Operator=""/></RULE></RULELIST>
Hij Sluit dus niet netjes met </TERM>
Hier de code:
Public Sub AddRule(NewRule As clsRule, NewTerm As clsTerm)
On Error GoTo ErrorHandler
'<RULELIST>
Dim RuleList As IXMLDOMNode
'<RULE>
Dim Rule As IXMLDOMNode
'<TERM>
Dim Term As IXMLDOMNode
'Check if XMLDoc is loaded
If Not g_objclsXMLfile.FileLoaded Then Exit Sub
'Get RuleLIST Node
Set RuleList = g_objclsXMLfile.xmlDocument.getElementsByTagName("RULELIST").Item(0)
'Create New Rule
Set Rule = g_objclsXMLfile.xmlDocument.createElement("RULE")
'Add all attributes
Call SetRuleAttributes(NewRule, Rule)
'Append the new Rule
Call RuleList.appendChild(Rule)
'nieuw!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Set Rule = g_objclsXMLfile.xmlDocument.getElementsByTagName("RULE").Item(0)
Set Term = g_objclsXMLfile.xmlDocument.createElement("TERM")
'Set attributes for term
'Call SetTermAttributes(NewTerm, Term)
Call Rule.appendChild(Term)
Exit Sub
ErrorHandler:
Call MsgBox("Rule " & NewRule.RuleName & " not added " & Chr(13) & _
"Probably the rule alread exists")
End Sub
Wat doe ik fout?
Ben momenteel bezig met het maken van een progje dat rules moet kunnen wegschrijven naar een XML-file. Ik krijg alleen iets niet voor elkaar. Zie voorbeeld van een goede Rule in XML-file:
<RULE Priority="B" Name="Wakkerworden">
<TERM Operator="AND">
<OPERAND>
<DEVICEREF DeviceID="T1"></DEVICEREF>
</OPERAND>
<OPERAND>
<VALUE>2000</VALUE>
</OPERAND>
</TERM>
<TRUECLAUSE>
<ACTION>
<DEVICEREF DeviceID="A1"></DEVICEREF>
<VALUE>10</VALUE>
</ACTION>
</TRUECLAUSE>
<FALSECLAUSE>
<ACTION>
<DEVICEREF DeviceID="A1"></DEVICEREF>
<VALUE>100</VALUE>
</ACTION>
</FALSECLAUSE>
</RULE>
Nu heb ik het probleem dat ik bij het toevoegen van een childnode type <TERM> de volgende regel krijg in mijn XML.
<RULE Priority="None" Name="None"><TERM Operator=""/></RULE></RULELIST>
Hij Sluit dus niet netjes met </TERM>
Hier de code:
Public Sub AddRule(NewRule As clsRule, NewTerm As clsTerm)
On Error GoTo ErrorHandler
'<RULELIST>
Dim RuleList As IXMLDOMNode
'<RULE>
Dim Rule As IXMLDOMNode
'<TERM>
Dim Term As IXMLDOMNode
'Check if XMLDoc is loaded
If Not g_objclsXMLfile.FileLoaded Then Exit Sub
'Get RuleLIST Node
Set RuleList = g_objclsXMLfile.xmlDocument.getElementsByTagName("RULELIST").Item(0)
'Create New Rule
Set Rule = g_objclsXMLfile.xmlDocument.createElement("RULE")
'Add all attributes
Call SetRuleAttributes(NewRule, Rule)
'Append the new Rule
Call RuleList.appendChild(Rule)
'nieuw!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Set Rule = g_objclsXMLfile.xmlDocument.getElementsByTagName("RULE").Item(0)
Set Term = g_objclsXMLfile.xmlDocument.createElement("TERM")
'Set attributes for term
'Call SetTermAttributes(NewTerm, Term)
Call Rule.appendChild(Term)
Exit Sub
ErrorHandler:
Call MsgBox("Rule " & NewRule.RuleName & " not added " & Chr(13) & _
"Probably the rule alread exists")
End Sub
Wat doe ik fout?