你能帮我一下吗?我有一个文档
<?xml version="1.0" encoding="UTF-8"?>
<Transport version="1.0">
<Car>
<Model version="1.0">
<!-- some comment -->
<ENGINE>
<water>blue</water>
<S00589>
<E005766>Test</E005766>
</S00589>
</ENGINE>
<OIL>
<E007412>test</E007412>
<E1450062>test</E1450062>
</OIL>
<!-- some comment -->
</Model>
</Car>
</Transport>
和我需要得到孩子与文本,属性和标签模型。我尝试使用xslt
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl= "http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:copy-of select="//Model/node()"/>
</xsl:template>
</xsl:stylesheet>
但是我在输出前后得到空行。当我使用xslt
时<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl= "http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:copy-of select="//Model/*"/>
</xsl:template>
</xsl:stylesheet>
我得到了正确的信息,但是我丢失了空格;我要拿到原文。这对我很重要。我期望这个输出
<ENGINE>
<water>blue</water>
<S00589>
<E005766>Test</E005766>
</S00589>
</ENGINE>
<OIL>
<E007412>test</E007412>
<E1450062>test</E1450062>
</OIL>
我想获得以<ENGINE>
开始并以</OIL>
结束的文本。我没有得到<Model version="1.0">
和<ENGINE>
之间的空格,但我需要获取<ENGINE>
和<water>blue</water>
之间有空格的文本。我想要得到原始文本。非常感谢。如果我对这个问题描述得不好,我很抱歉,这是我第一次来这里。我只想得到突出显示的内容预期结果
我认为获得类似于您所显示的输出的最简单方法是:
<xsl:stylesheet version="1.0"
xmlns:xsl= "http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" omit-xml-declaration="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select="//Model/*"/>
</xsl:template>
</xsl:stylesheet>
不从原始XML中复制空白文本节点;它为输出创建新的缩进。
如果您确实想复制原始缩进,但要删除开始和结束的空白文本节点(不确定为什么需要这样做),您可以这样做:
<xsl:stylesheet version="1.0"
xmlns:xsl= "http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" />
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates select="//Model/node()"/>
</xsl:template>
<xsl:template match="Model/text()[1] | Model/text()[last()]"/>
</xsl:stylesheet>
注意,这两种情况的结果都是一个XML片段。格式良好的XML文档必须有一个根元素。