Je travaille avec Linq sur Xml pour manipuler des documents openXml. Plus précisément, j'essaie de lire et d'écrire dans les propriétés personnalisées des documents. J'ai actuellement un problème pour ajouter un préfixe à un XElement. Mon code ressemble à ceci :
Dim main as XNameSpace = "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties"
Dim vt as XNameSpace = "http://schemas.openxmlformats.org/officeDocument2006/docPropsVTypes"
Dim props as XElement = cXDoc.Element(main + "Properties"
props.Add(New XElement(main + "property"), _
New XAttribute("fmtid", formatId), _
New XAttribute("pid", pid + 1), _
New XAttribute("name", "test"), _
New XElement(vt + "lpwstr", "test value")) _
)
Le Xml contenu dans props avant l'ajout est :
Le Xml après l'appel à la méthode props.add() est :
test value
Dans l'élément property, je devrais obtenir
test value
mais je n'arrive tout simplement pas à y arriver. Je ne veux pas non plus de l'attribut xmlns pour cet élément ici. Je pense que je dois d'une manière ou d'une autre faire correspondre l'espace de noms vt à la déclaration d'espace de noms dans l'élément racine "Properties". Est-ce que quelqu'un a des suggestions ?