Какой более эффективный способ сопоставления одного XML-файла другому? Два варианта
Вот пример входных данных с количеством символов, начинающихся с префикса '.' быть близким к реальному сценарию, а также по количеству символов, добавленных к "." Длина ввода будет около 30 узлов XML.
<Example1.Identifier1>29</Example1.Identifier1>
<Example1.Identifier2>blah</Example1.Identifier2>
<Example2.Identifier1>blah2</Example2.Identifier1>
<Example2.Identifier2>23</Example2.Identifier2>
Вот пример файла, которому нужно сопоставить.
<Entity1>
<Column1></Column1>
<Column2></Column2>
</Entity1>
<Entity2>
<Column1></Column1>
<Column2></Column2>
</Entity2>
Вот первый способ, которым я могу придумать карту. Это просто и не требует разбора имени узла.
<Example1.Identifier1 EntityName="Entity1" ColumnName="Column1"/>
<Example1.Identifier2 EntityName="Entity1" ColumnName="Column2"/>
<Example1.Identifier1 EntityName="Entity2" ColumnName="Column1"/>
<Example1.Identifier2 EntityName="Entity2" ColumnName="Column2"/>
Вот второй способ, и он взял бы бит с префиксом "." Это займет некоторое время, но, с другой стороны, вы будете искать в меньшем количестве узлов, поскольку сможете быстрее их сузить.
<Example1>
<Identifier1 ColumnName="Column1/>
<Identifier1 ColumnName="Column2/>
</Example1>
<Example2>
<Identifier1 ColumnName="Column1/>
<Identifier1 ColumnName="Column2/>
</Example2>
Мне кажется, второй вариант быстрее, около 6 символов перед. и вам придется искать через половину количества узлов, верно? В конечном итоге это будет словарь словарей в C#. Но, возможно, словарь C# обладает эффективностью, о которой я не знаю, а это означает, что использование первого варианта имеет больше смысла. Я не уверен, но я не буду кодировать это до завтра, поэтому любые мнения очень ценятся.
С наилучшими пожеланиями, Томас