私は名前空間を特定できない顧客からのXMLを持っています。私はいくつかの属性の値を置き換える必要があります。ここで入力されたXMLの例です:属性値をXSLTを使用して不明な名前空間に置き換えます
<?xml version="1.0" encoding="UTF-8"?>
<NetworkSection xmlns:ovf="http://com/deployment/1.0">
<Network ovf:name="bridged"/>
</NetworkSection>
私はこのようなXMLを受信したい:
ここ<?xml version="1.0" encoding="UTF-8"?>
<NetworkSection xmlns:ovf="http://com/deployment/1.0">
<Network ovf:name="VM network"/>
</NetworkSection>
私が使用しようとXSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8"/>
<xsl:template match="NetworkSection/Network/@*[local-name()='name']">
<xsl:attribute name='name'>VM Network</xsl:attribute>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
問題はそのIであります属性名前空間を失う。 XSLで名前空間を定義することはできません。異なる入力XMLでは異なるため、属性値を変更したいだけです。
XSLで名前空間を指定せずにこのような置換を行うことはできますか? ありがとうございます。
正常に動作します。どうもありがとう。 –