我有一个html,我想使用html-agility-pack库将它解析为xml。这里的xsl:XSL - 无法向根节点添加名称空间
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<BusinessDetail>
<Name>
<xsl:value-of select="//span[@class='pp-place-title']/span" />
</Name>
<Address>
<xsl:value-of select="//span[@class='pp-headline-item pp-headline-address']/span"/>
</Address>
...
</BusinessDetail>
</xsl:template>
</xsl:stylesheet>
我只想添加一个命名空间到根节点。预期的输出是:
<BusinessDetail xmlns:g="http://myurl.com">
<Name>
...
</Name>
..
</BusinessDetail>
因此改变我XLS到:
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<BusinessDetail xmlns:g="http://myurl.com">
<Name>
<xsl:value-of select="//span[@class='pp-place-title']/span" />
</Name>
<Address>
<xsl:value-of select="//span[@class='pp-headline-item pp-headline-address']/span"/>
</Address>
...
</BusinessDetail>
</xsl:template>
</xsl:stylesheet>
但该命名空间不会出现在输出中。有什么不对?
嗨 - 我不同意,您不必将名称空间添加到xsl:stylesheet元素,它可以出现在文档中的任何位置。但是,是的,你是对的,除非它被使用,它不会出现在输出中! – ColinE 2011-05-19 07:58:35
@ColinE也许这是我的错误措辞,加强了一个例子,加强了具体的情况。至少我没有参加我的初稿,包括命名空间别名:) – 2011-05-19 08:50:15