Aspose::Words::Markup::XmlMapping class
Содержание
[
Скрывать
]XmlMapping class
Указывает информацию, используемую для установления сопоставления между родительским структурным тегом документа и элементом XML, хранящимся в пользовательской части данных XML в документе. Чтобы узнать больше, посетите статью документации Structured Document Tags or Content Control.
class XmlMapping : public System::Object
Методы
| Метод | Описание |
|---|---|
| Delete() | Удаляет сопоставление родительского структурированного документа с XML‑данными. |
| get_CustomXmlPart() | Возвращает пользовательскую часть XML‑данных, к которой сопоставлен родительский структурированный тег документа. |
| get_IsMapped() | Возвращает true, если родительский структурированный тег документа успешно сопоставлен с XML‑данными. |
| get_PrefixMappings() const | Возвращает сопоставления префиксов пространств имён XML для оценки XPath. |
| get_StoreItemId() | Указывает идентификатор пользовательских XML‑данных для пользовательской части XML, которая будет использоваться для оценки выражения XPath. |
| get_XPath() const | Возвращает выражение XPath, которое оценивается для поиска пользовательского узла XML, сопоставленного с родительским структурированным тегом документа. |
| GetType() const override | |
| Is(const System::TypeInfo&) const override | |
| SetMapping(const System::SharedPtr<Aspose::Words::Markup::CustomXmlPart>&, const System::String&, const System::String&) | Устанавливает сопоставление между родительским структурированным тегом документа и узлом XML пользовательской части XML‑данных. |
| static Type() |
Примеры
Показывает, как задать сопоставления XML для пользовательских частей XML.
auto doc = System::MakeObject<Aspose::Words::Document>();
// Создайте часть XML, содержащую текст, и добавьте её в коллекцию CustomXmlPart документа.
System::String xmlPartId = System::Guid::NewGuid().ToString(u"B");
System::String xmlPartContent = u"<root><text>Text element #1</text><text>Text element #2</text></root>";
System::SharedPtr<Aspose::Words::Markup::CustomXmlPart> xmlPart = doc->get_CustomXmlParts()->Add(xmlPartId, xmlPartContent);
ASSERT_EQ(u"<root><text>Text element #1</text><text>Text element #2</text></root>", System::Text::Encoding::get_UTF8()->GetString(xmlPart->get_Data()));
// Создайте структурированный тег документа, который будет отображать содержимое нашего CustomXmlPart.
auto tag = System::MakeObject<Aspose::Words::Markup::StructuredDocumentTag>(doc, Aspose::Words::Markup::SdtType::PlainText, Aspose::Words::Markup::MarkupLevel::Block);
// Установите сопоставление для нашего структурированного тега документа. Это сопоставление будет указывать
// нашему структурированному тегу документа отображать часть текстового содержимого части XML, на которую указывает XPath.
// В этом случае это будет содержимое второго элемента "<text>" первого элемента "<root>": "Text element #2".
tag->get_XmlMapping()->SetMapping(xmlPart, u"/root[1]/text[2]", u"xmlns:ns='http://www.w3.org/2001/XMLSchema'");
ASSERT_TRUE(tag->get_XmlMapping()->get_IsMapped());
ASPOSE_ASSERT_EQ(xmlPart, tag->get_XmlMapping()->get_CustomXmlPart());
ASSERT_EQ(u"/root[1]/text[2]", tag->get_XmlMapping()->get_XPath());
ASSERT_EQ(u"xmlns:ns='http://www.w3.org/2001/XMLSchema'", tag->get_XmlMapping()->get_PrefixMappings());
// Добавьте структурированный тег документа в документ, чтобы отобразить содержимое из нашей пользовательской части.
doc->get_FirstSection()->get_Body()->AppendChild<System::SharedPtr<Aspose::Words::Markup::StructuredDocumentTag>>(tag);
doc->Save(get_ArtifactsDir() + u"StructuredDocumentTag.XmlMapping.docx");
См. также
- Namespace Aspose::Words::Markup
- Library Aspose.Words for C++