我在網上搜索了一個解決方案,但沒有找到一個。我甚至不確定這是可能的還是導致此行爲的原因。我正嘗試將節點內容複製到其他節點。它沒有問題,但在第一個節點中是一個標籤(xliff:g),只有標籤文本元素被複制。將帶有標記的筆記內容複製到節點
我錯過了什麼,或者爲什麼在所有這個標籤不被複制?
這是我輸入的xml:
<?xml version="1.0"?>
<texts xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<?xml-stylesheet href="hello.xsl" type="text/xsl"?>
<strings>
<string name="cpu">
<en>example1</en>
<de name="cpu">"something <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> something1</de>
<es>""</es>
</string>
<string name="gpu">
<en>example2</en>
<de name="gpu">something2<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g></de>
<es>""</es>
</string>
<string name="mainboard">
<en>example3</en>
<de><xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g></de>
<es>""</es>
</string>
</strings>
</texts>
我的XSL轉換XML:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="strings/string/es/text()">
<xsl:value-of select="../../de"/>
</xsl:template>
</xsl:stylesheet>
而且其中只有XLIFF的文本價值的出口:G標籤被複制:
<texts xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><?xml-stylesheet href="hello.xsl" type="text/xsl"?>
<strings>
<string name="cpu">
<en>example1</en>
<de name="cpu">"something <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> something1</de>
<es>"something %1$s something1</es>
</string>
<string name="gpu">
<en>example2</en>
<de name="gpu">something2<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>
</de>
<es>something2%1$s</es>
</string>
<string name="mainboard">
<en>example3</en>
<de>
<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>
</de>
<es>%1$s</es>
</string>
</strings>
</texts>
期望的輸出將如下所示:
<texts xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><?xml-stylesheet href="hello.xsl" type="text/xsl"?>
<strings>
<string name="cpu">
<en>example1</en>
<de name="cpu">"something <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> something1</de>
<es>"something <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> something1</es>
</string>
<string name="gpu">
<en>example2</en>
<de name="gpu">something2<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>
</de>
<es>something2<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g></es>
</string>
<string name="mainboard">
<en>example3</en>
<de>
<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>
</de>
<es><xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g></es>
</string>
</strings>
</texts>
也許有人可以幫我弄清楚我做錯了什麼,或者爲什麼轉換的行爲像這樣。
提前感謝 卡利
http://stackoverflow.com/help/someone-answers –