Я новичок в XML и C#, поэтому у меня мало проблем с реализацией следующего. Надеюсь, кто-то может указать мне в правильном направлении. Поэтому я разрабатываю C# с OpenXML 2.5, и я пытаюсь проверить, после создания шрифта, если этот шрифт уже существует в коллекции шрифтов. Если он уже делает, я хочу вернуть индекс шрифта.Сравнение двух XML-элементов в OpenXML
Я застрял в написании эффективного метода сравнения этих объектов шрифта, и я считаю, что сравнение их соответствующего кода XML - это путь. Я считаю, что эти объекты Font являются оболочками для XML-кода. Поэтому я подумал, что мне нужно сравнить два XML-элемента и выяснить, существует ли Font или нет.
Имеет ли это смысл? Вот пример, потому что я боюсь, что я слишком усложняюсь в своих объяснениях.
1. В принципе, я хочу, чтобы найти, если это:
<x:font>
<x:b />
<x:sz val="18" />
<x:color theme="3" />
<x:name val="Cambria" />
<x:family val="2" />
<x:scheme val="major" />
</x:font>
2. Уже существует здесь:
<x:fonts count="18" x14ac:knownFonts="1" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:font>
<x:sz val="11" />
<x:color theme="1" />
<x:name val="Calibri" />
<x:family val="2" />
<x:scheme val="minor" />
</x:font>
<x:font>
<x:sz val="11" />
<x:color theme="1" />
<x:name val="Calibri" />
<x:family val="2" />
<x:scheme val="minor" />
</x:font>
<x:font>
<x:b />
<x:sz val="18" />
<x:color theme="3" />
<x:name val="Cambria" />
<x:family val="2" />
<x:scheme val="major" />
</x:font>
<x:font>
<x:b />
<x:sz val="15" />
<x:color theme="3" />
<x:name val="Calibri" />
<x:family val="2" />
<x:scheme val="minor" />
</x:font>
</x:fonts>
3. И метод возвращает индекс Шрифта. Поэтому в этом примере моя функция вернет 2
.
Любая помощь с этим была бы принята с благодарностью!
спасибо, Джастин