Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

Comment incorporer xml dans xml

J'ai besoin d'intégrer tout un document bien formé xml à un autre document xml. Néanmoins, je préférerais éviter CDATA /Dégoût personnel/, Et je voudrais également éviter un analyseur, qui obtiendra l'ensemble du document de la perte de temps sur l'analyse de l'intégré xml. Intégré xml peut être assez important et j'aimerais que le code que l'ensemble du fichier examinera l'intégré xml Comment des données arbitraires.

L'idée qui est immédiatement venue à l'esprit est d'encoder l'intégré xml dans base64 ou zip ses. Cela sonne-t-il normalement?

Au fait, je codant dans C#.
Invité:

Damien

Confirmation de:

Vous pouvez convertir XML dans le tableau d'octets et ensuite le convertir au format binary64. Cela vous permettra de le mettre dans l'élément et de ne pas utiliser CDATA.

Emile

Confirmation de:

Approuvé W3C La façon de faire cela est xinclude. Il y a une réalisation pour .Net dans
http://mvp-xml.sourceforge.net/xinclude/
/

Conrad

Confirmation de:

Juste une petite note: je suis allé sur la route base64, Et cela fonctionne parfaitement parfaitement, mais cela vient avec une bonne amende pour la performance, en particulier avec une utilisation intensive. Nous le faisons avec des fragments de documents de taille 20 MB, et après le codage base64 ils peuvent prendre 65 Mb /avec des balises et des données/, Même avec la compression.

Cependant, le gros problème est que le codage .NET base64 Peut consommer up-to 10x mémoire lors du codage/décodage et peut souvent causer des exceptions OOM, Si c'est re-et/Ou est effectué dans plusieurs threads.

Quelqu'un a recommandé une question similaire
http://code.google.com/p/protobuf/
comme une option aussi
http://java.sun.com/developer/ ... oset/
comme une autre option.

Eugene

Confirmation de:

En fonction de la façon dont vous construisez XML, L'une des manières n'est pas de s'en occuper et de permettre au cadre de le faire face.


XmlDocument doc = new XmlDocument//; 
doc.LoadXml/"xml version=\"1.0\" encoding=\"utf-8\" ?<helloworld></helloworld>"/;
string xml = "<how><are><you am="" fine\"="" reply='\"i'>really</you></are></how>";
doc.GetElementsByTagName/"helloworld"/[0].InnerText = xml;


La sortie sera quelque chose comme une chaîne HTMLEncoded:


xml version="1.0" encoding="utf-8"?
<helloworld>&lt;how&gt;&lt;are&gt;&lt;you
reply="i am fine"&gt;really&lt;/you&gt;&lt;/are&gt;&lt;/how&gt;
</helloworld>

Felix

Confirmation de:

Je l'encoderais de votre manière préférée /par exemple, base64 ou HttpServerUtility::UrlEncode, ...//, Et puis je le mettrais.

Agathe

Confirmation de:

Si vous n'avez pas besoin d'une déclaration xml /Première ligne de document/, Simplement insérer l'élément racine /avec toutes les filiales/ Dans un arbre d'un autre document xml Comme élément enfant d'un élément existant. Utilisez un autre espace de noms pour séparer les éléments insérés.

Dominique

Confirmation de:

Il paraît que
https://coderoad.ru/777302/
- Ceci est la méthode recommandée.

David

Confirmation de:

Pouvez-vous ne pas utiliser pour cela XSLT? Peut-être utiliser xsl:copy ou xsl:copy-of? Pour cela et existe XSLT.

Hannah

Confirmation de:

Pour cela, j'utilise des commentaires :

ton xml texte

[EDITED]

Si construit xml Avec des commentaires, remplacez-le par une autre syntaxe.

xml version="1.0" encoding="iso-8859-1" ?
<xml>
<status cause="" code="0" msg=""></status>
<data>
<order attrib="..." type="07" user="none">
<xmlembeded>
<!--
<?xml version="1.0" encoding="iso-8859-1" ?>
<xml>
<status ret="000 "/>
<data>
<allxml_here />
<!** embedeb comments **>
</data>
<xml>
-->
</xmlembeded>
</order>
<context attrib="..." scriptname="/from/..." sessionid="12345678"></context>
</data>
</xml>

Pour répondre aux questions, connectez-vous ou registre