public void GenerateNTriples(StringBuilder output, DataRowAdaptor dataRow, List<string> excludeColumns, bool performEscape) { // replace normal variables var line = _pattern; foreach (var columnName in dataRow.ColumnNames) { var val = dataRow.GetValue(columnName); // need to make sure the value contains only valid XML chars // replace any non-valid xml characters. var xmlValidData = new StringBuilder(); var chars = val.ToCharArray(); foreach (var c in chars) { xmlValidData.Append(GetValidXmlChar(c)); } val = xmlValidData.ToString(); var variablePosition = line.IndexOf("[[" + columnName + "]]"); if (variablePosition >= 0 && string.IsNullOrEmpty(val)) { // if the variable exists but the value is null then skip return; } else { //replace value if (IsValueLiteral("[[" + columnName + "]]")) { line = line.Replace("[[" + columnName + "]]", EscapeLiteral(val)); } else { line = line.Replace("[[" + columnName + "]]", val); } } } // if contains COLNAME repeat for all if (line.Contains("[[COLNAME]]") && line.Contains("[[VALUE]]")) { var gline = line; foreach (var columnName in dataRow.ColumnNames) { // ignore excluded columns if (excludeColumns!=null && excludeColumns.Contains(columnName)) continue; var colVal = dataRow.GetValue(columnName); if (string.IsNullOrEmpty(colVal)) { continue; } var xmlValidData = new StringBuilder(); var chars = colVal.ToCharArray(); foreach (var c in chars) { xmlValidData.Append(GetValidXmlChar(c)); } colVal = xmlValidData.ToString(); gline = gline.Replace("[[COLNAME]]", columnName); if (IsValueLiteral("[[VALUE]]")) { gline = gline.Replace("[[VALUE]]", EscapeLiteral(colVal.ToCharArray())); } else { gline = gline.Replace("[[VALUE]]", colVal); } // output output.AppendLine(ApplyFunctions(gline, performEscape)); // reset gline gline = line; } } else { // just add the line output.AppendLine(ApplyFunctions(line, performEscape)); } }
public void GenerateNTriples(StringBuilder output, DataRowAdaptor dataRow, List <string> excludeColumns, bool performEscape) { // replace normal variables var line = _pattern; foreach (var columnName in dataRow.ColumnNames) { var val = dataRow.GetValue(columnName); // need to make sure the value contains only valid XML chars // replace any non-valid xml characters. var xmlValidData = new StringBuilder(); var chars = val.ToCharArray(); foreach (var c in chars) { xmlValidData.Append(GetValidXmlChar(c)); } val = xmlValidData.ToString(); var variablePosition = line.IndexOf("[[" + columnName + "]]"); if (variablePosition >= 0 && string.IsNullOrEmpty(val)) { // if the variable exists but the value is null then skip return; } else { //replace value if (IsValueLiteral("[[" + columnName + "]]")) { line = line.Replace("[[" + columnName + "]]", EscapeLiteral(val)); } else { line = line.Replace("[[" + columnName + "]]", val); } } } // if contains COLNAME repeat for all if (line.Contains("[[COLNAME]]") && line.Contains("[[VALUE]]")) { var gline = line; foreach (var columnName in dataRow.ColumnNames) { // ignore excluded columns if (excludeColumns != null && excludeColumns.Contains(columnName)) { continue; } var colVal = dataRow.GetValue(columnName); if (string.IsNullOrEmpty(colVal)) { continue; } var xmlValidData = new StringBuilder(); var chars = colVal.ToCharArray(); foreach (var c in chars) { xmlValidData.Append(GetValidXmlChar(c)); } colVal = xmlValidData.ToString(); gline = gline.Replace("[[COLNAME]]", columnName); if (IsValueLiteral("[[VALUE]]")) { gline = gline.Replace("[[VALUE]]", EscapeLiteral(colVal.ToCharArray())); } else { gline = gline.Replace("[[VALUE]]", colVal); } // output output.AppendLine(ApplyFunctions(gline, performEscape)); // reset gline gline = line; } } else { // just add the line output.AppendLine(ApplyFunctions(line, performEscape)); } }