Примечание: - Это может быть итерация узлов XML с использованием вопроса VBA. Пожалуйста, посмотрите внизу этого вопроса. Было бы хорошо, если бы мы могли выполнять итерации без использования MSXML2.DOMDocument
Я вижу вопрос this , который отвечает на часть моего вопроса о том, как получить CustomXMLPart. Тем не менее, я не могу перебрать Xml. Таким образом, это может быть не только для CustomXmlPart, это может быть итерация XML с использованием вопроса VBA. Ниже приведен XML-код, содержащийся в моем CustomXMLPart.
<Items>
<Item1>Item1</Item1>
<Item2>Item2</Item2>
<Item3>Item3</Item3>
</Items>
Вот как я добавляю вышеупомянутый XML как CustomXmlPart: -
static void AddCustomTableXmlPart(WordprocessingDocument document)
{
MainDocumentPart mainDocumentPart = document.MainDocumentPart;
XDocument itemXml = GetItemsAsCustomXML();
if (mainDocumentPart.GetPartsCountOfType<CustomXmlPart>() > 0)
mainDocumentPart.DeleteParts<CustomXmlPart>(mainDocumentPart.CustomXmlParts);
//Add a new customXML part and then add content
var customXmlPart = mainDocumentPart.AddCustomXmlPart(CustomXmlPartType.CustomXml);
//copy the XML into the new part...
using (var ts = new StreamWriter(customXmlPart.GetStream()))
{
ts.Write(itemXml.ToString());
ts.Flush();
}
}
и вот как я получаю к нему доступ в макросе: -
Dim itemNode As xmlNode
Dim itemChildren As XMLNodes
'В приведенной ниже строке выдается ошибка времени выполнения' Ошибка времени выполнения '13' - 'несоответствие типов' не знаю почему.
**Set itemChildren= ActiveDocument.CustomXMLParts(ActiveDocument.CustomXMLParts.Count).SelectSingleNode("//Items").ChildNodes**
Интересно, что когда я быстро наблюдаю ActiveDocument.CustomXMLParts (ActiveDocument.CustomXMLParts.Count) .SelectSingleNode ("// Items"). ChildNodes , я вижу дочерние элементы в окне быстрого просмотра. Является ли присвоение переменной itemChildren неверным?
Я хочу пройтись по всем элементам и получить текст для всех них. Кто-нибудь может помочь?