Zamena hodnot atributu za element

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Ouzo83 13. 2. 2020 13:55

Dobrý den,
potřebuju si upravit XML tak, abych zaměnil hodnoty atributů za elementy. Např "ATTRIBUTES Zvalue" je chybně a měl by obsahovat hodnotu "ULICE / OSADA"


<ATTRIBUTES Zvalue="Tehelná ulice" Zatrord="6" Attrid="ME001-P04-556" Attrdatatype="String" Attrdesc="ULICE / OSADA">


Našel jsem na webu toto, ale nepodařilo se mi správně nakonfigurovat.
Poradíte někdo, prosím?


Díky moc, Michal


File.XMLReader reader;
File.XMLWriter w;
reader.initInputStream(getStream(), getCodec(), getIgnoreNamespaces());
while(reader.read())
{
is(reader.NodeType)
{
File.XMLNodeType.Element:
{
if(reader.Name=="Field")
{
elementBegin(reader.Attribute["name"]);
reader.read();
reader.read(); //value
unparsed(reader.Value);
reader.read(); // /value
reader.read(); // /Field
elementEnd();
}
else
{
elementBegin(reader.Name);
for(Int i=0; i<reader.AttributeCount; i++)
attribute(reader.AttributeName[i], reader.Attribute[i]);
}
}
File.XMLNodeType.EndElement:
elementEnd();

File.XMLNodeType.Text:
unparsed(reader.Value);

File.XMLNodeType.CDATA:
;
}
}
Ouzo83
Kolemjdoucí

Odeslat příspěvekod Geniál 13. 2. 2020 14:50

C# - LINQ to XML
Kód: Vybrat vše
XDocument doc = XDocument.Load(@"my.xml");
foreach (XElement att doc.Descendants("ATTRIBUTES"))
{
    switch (att.Attribute("name").Value)
    {
        case "Zvalue":       
            att.Attribute["Zvalue"].Value = att.Element("Attrdesc").Value;
            break;
        case "Attrdesc":
            att.Attribute["Attrdesc"].Value = att.Element("Zvalue").Value;
            break;
    }
}
doc.Save(@"my.xml");


psáno ručně od voka, nejspíš nefunguje, but you get the picture
Geniál
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků