Wie kann ich ausschließen Elemente mit xsi: nil = „true“ aus einer Transformation?

StackOverflow https://stackoverflow.com/questions/2179374

  •  24-09-2019
  •  | 
  •  

Frage

Ich habe einige XML-Dateien bekommen, die so vor kurzem geändert, dass einige der Knoten jetzt das Attribut xsi: nil = „true“. Ich habe einen XSLT-Stylesheet für Sie, XML in HTML-Code für einige schnellen Eyeballing von Daten macht. Zur Zeit, um die Dinge einfacher für mich ich aus dem XML-Namespaces abzustreifen, bevor ich das Stylesheet anwenden. Das hat gut funktioniert, bis unser letztes Update auf. Jetzt einen Fehler Ich erhalte, weil das XSL nicht weiß, wie die xsl zu handhaben. Nil = „true“

Ich kann leicht den Code aktualisieren, damit ich einen ersetze / Entfernen auf all xsl: nil = „true“ Spiele in der XML, bevor ich sie transformiert, aber ich frage mich, ob es möglich ist, den XSLT-Stylesheet cludge so dass xsi: nil ist, werden ignoriert / nicht Ursache Transformation Ausfälle, auch wenn keine Namespaces in XML sind inklusive. Ich würde es vorziehen, die Dinge so zu tun, weil ich die Änderung jetzt auf dem Server machen kann, wo, wenn ich ein neues Web-Build zu erteilen habe ich durch einige internen Reifen springen müssen, um es im Einsatz.

Nachdem ich die Dinge zu arbeiten. (Entweder durch die xsl Entfernung: nil der vor oder während der Transformation) ich wieder um kreisen werden und herausfinden, warum entfernte ich die Namespaces ursprünglich und fix, dass

Vielen Dank für jede Hilfe, die Sie mir geben können.

War es hilfreich?

Lösung

Warum Sie die Namespaces in erster Linie entfernt haben? Die XSLT können Sie steuern, was Präfixe dürfen nicht in den Ausgang gestellt werden, und Sie können diese xsi:nil schön im Stylesheet überspringen.

Wenn es keine Namespacepräfix Deklaration für den xsi Präfix ist, ist die XML nicht gültig. Also entweder Sie mit ungültigen XML handeln oder Sie noch einig XSI Namespace-Deklaration irgendwo haben, und man kann den XSLT ändert die Einträge überspringen.

Wenn Sie einen Fund ersetzen auf der XML-Quelle zu tun, wirklich sicher zu machen, es zu beheben später (bald!), Weil diese Art von Sachen geht den Hals zu brechen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top