我正在使用 xsl 元素 namespace 属性在元素中添加 namespace 。结果在子元素中添加了空命名空间。
这是将 namespace 添加到元素“Auto”中的 XSL
编辑 - 我的 xsl 的简短版本
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="no"/>
<xsl:template match="/">
<xsl:element name="Root">
<xsl:element name="Auto" namespace="http://www.Root.com/XMLSchema/Auto">
<xsl:element name="Applicant">
<xsl:element name="ApplicantType">
<xsl:text>Applicant</xsl:text>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="Life" namespace="http://www.Root.com/XMLSchema/Auto">
<xsl:element name="Applicant">
<xsl:element name="ApplicantType">
<xsl:text>Applicant</xsl:text>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
这里是XSL转换后的xml
<Root>
<Auto xmlns="http://www.Root.com/XMLSchema/Auto">
<Applicant xmlns="">
<ApplicantType>Applicant</ApplicantType>
</Applicant>
</Auto>
</Root>
如果您看到 Applicant 元素,转换添加了 xmlns=""。如何删除这个空的命名空间?
最佳答案
如果您显示生成 Applicant 和 ApplicantType 元素的 XSL,我们可以更好地帮助您。此外,您在描述问题时混淆了“命名空间”和“命名空间声明”……将这两者分开可能有助于您掌握解决方案
您的 XSL 代码显然是在告诉处理器在没有命名空间的情况下输出 Applicant 元素。 (因此您的代码可能是错误的......您希望 Applicant 与其父级位于相同的 Auto 命名空间中。)由于 Applicant 与没有前缀会从其父级继承默认 namespace 声明,输出 XML 必须“取消声明”默认 namespace 声明,以便按照您的要求将 Applicant 放在任何 namespace 中。
例如,如果您的 XSL 代码说:
<xsl:element name="Auto" namespace="http://www.Root.com/XMLSchema/Auto">
<xsl:element name="Applicant">
然后您将告诉 XSL 在没有命名空间的情况下输出 Applicant 元素,如上所述。要解决此问题,您可以重复命名空间:
<xsl:element name="Auto" namespace="http://www.Root.com/XMLSchema/Auto">
<xsl:element name="Applicant" namespace="http://www.Root.com/XMLSchema/Auto">
或者如@empo 所说,您可以声明一个命名空间前缀并使用它:
<xsl:stylesheet ... xmlns:auto="http://www.Root.com/XMLSchema/Auto">
...
<auto:Auto>
<auto:Applicant>
<auto:ApplicantType>
...
或在样式表(或模板)中使用默认命名空间声明:
<xsl:stylesheet ... xmlns="http://www.Root.com/XMLSchema/Auto">
...
<xsl:element name="Auto">
<xsl:element name="Applicant">
...
关于xml - xsl 命名空间属性在子元素中添加空命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6470311/
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val
我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它
我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我有一个具有一些属性的模型:attr1、attr2和attr3。我需要在不执行回调和验证的情况下更新此属性。我找到了update_column方法,但我想同时更新三个属性。我需要这样的东西:update_columns({attr1:val1,attr2:val2,attr3:val3})代替update_column(attr1,val1)update_column(attr2,val2)update_column(attr3,val3) 最佳答案 您可以使用update_columns(attr1:val1,attr2:val2
我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog
对于Rails模型,是否可以/建议让一个类的成员不持久保存到数据库中?我想将用户最后选择的类型存储在session变量中。由于我无法从我的模型中设置session变量,我想将值存储在一个“虚拟”类成员中,该成员只是将值传递回Controller。你能有这样的类(class)成员吗? 最佳答案 将非持久属性添加到Rails模型就像任何其他Ruby类一样:classUser扩展解释:在Ruby中,所有实例变量都是私有(private)的,不需要在赋值前定义。attr_accessor创建一个setter和getter方法:classUs
当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?