public XmlReader Transform (XPathNavigator input, XsltArgumentList args)\r
{\r
IntPtr xmlInput = GetDocumentFromNavigator (input);\r
- string[] argArr = new string[args.parameters.Count * 2 + 1];\r
- int index = 0;\r
- foreach (object key in args.parameters.Keys) {\r
- argArr [index++] = key.ToString();\r
- object value = args.parameters [key];\r
- if (value is Boolean)\r
- argArr [index++] = XmlConvert.ToString((bool) value); // FIXME: How to encode it for libxslt?\r
- else if (value is Double)\r
- argArr [index++] = XmlConvert.ToString((double) value); // FIXME: How to encode infinity's and Nan?\r
- else\r
- argArr [index++] = "'" + value.ToString() + "'"; // FIXME: How to encode "'"?\r
+ string[] argArr = null;\r
+ if (args != null) {\r
+ argArr = new string[args.parameters.Count * 2 + 1];\r
+ int index = 0;\r
+ foreach (object key in args.parameters.Keys) {\r
+ argArr [index++] = key.ToString();\r
+ object value = args.parameters [key];\r
+ if (value is Boolean)\r
+ argArr [index++] = XmlConvert.ToString((bool) value); // FIXME: How to encode it for libxslt?\r
+ else if (value is Double)\r
+ argArr [index++] = XmlConvert.ToString((double) value); // FIXME: How to encode infinity's and Nan?\r
+ else\r
+ argArr [index++] = "'" + value.ToString() + "'"; // FIXME: How to encode "'"?\r
+ }\r
+ argArr[index] = null;\r
}\r
- argArr[index] = null;\r
string xslOutputString = ApplyStylesheetAndGetString (xmlInput, argArr);\r
xmlFreeDoc (xmlInput);\r
Cleanup ();\r
throw new ArgumentNullException ("output");\r
\r
IntPtr inputDoc = GetDocumentFromNavigator (input);\r
- string[] argArr = new string[args.parameters.Count * 2 + 1];\r
- int index = 0;\r
- foreach (object key in args.parameters.Keys) {\r
- argArr [index++] = key.ToString();\r
- object value = args.parameters [key];\r
- if (value is Boolean)\r
- argArr [index++] = XmlConvert.ToString((bool) value); // FIXME: How to encode it for libxslt?\r
- else if (value is Double)\r
- argArr [index++] = XmlConvert.ToString((double) value); // FIXME: How to encode infinity's and Nan?\r
- else\r
- argArr [index++] = "'" + value.ToString() + "'"; // FIXME: How to encode "'"?\r
+ string[] argArr = null;\r
+ if (args != null) {\r
+ argArr = new string[args.parameters.Count * 2 + 1];\r
+ int index = 0;\r
+ foreach (object key in args.parameters.Keys) {\r
+ argArr [index++] = key.ToString();\r
+ object value = args.parameters [key];\r
+ if (value is Boolean)\r
+ argArr [index++] = XmlConvert.ToString((bool) value); // FIXME: How to encode it for libxslt?\r
+ else if (value is Double)\r
+ argArr [index++] = XmlConvert.ToString((double) value); // FIXME: How to encode infinity's and Nan?\r
+ else\r
+ argArr [index++] = "'" + value.ToString() + "'"; // FIXME: How to encode "'"?\r
+ }\r
+ argArr[index] = null;\r
}\r
- argArr[index] = null;\r
string transform = ApplyStylesheetAndGetString (inputDoc, argArr);\r
xmlFreeDoc (inputDoc);\r
Cleanup ();\r