这是我的示例 xml 数据。如果有任何语法错误或缺少某些 xml 功能,请忽略。 任务是评论上面的部分并取消评论下面的部分。
<?xml version="1.0" encoding="UTF-8"?>
<providersbeans xmlns="http://www.springframework.org/schema/providers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dns="http://www.springframework.org/schema/dns"
xsi:schemaLocation="http://www.springframework.org/schema/dns/spring-dns.xsd">
<!-- COMMENT THIS SECTION -->
<dns:auth-head alias="authHead">
<dns:user-generator>
<dns:user-data>
<!-- USER AA -->
<dns:user name="AA"
password="AAAAAAAAAAAAAAAA" role="ROLE_AA" />
<!-- USER BB -->
<dns:user name="BB"
password="XXXXXXXXXXXXXXX" role="ROLE_BB" />
</dns:user-data>
</dns:user-generator>
</dns:auth-head>
<!-- UNCOMMENT THIS SECTION-->
<!--
<bean id="authHead" class="org.xx.providers">
<property name="providers">
<list>
<ref bean="AuthProvider"/>
</list>
</property>
</bean>
-->
</providersbeans>
我尝试了一些解决方案但无法成功,因为它有一个前缀。 我为评论而改编的代码之一是:
$getxmlpath='C:\Powershell\securityfile.xml'
$xml=[xml](Get-Content $getxmlpath)
$xml.SelectNodes("//auth-head") | ForEach-Object # used with prefix as well, but didnt work
{
$var= $_;
$mycomment = $xml.CreateComment($var.OuterXml);
$var.ParentNode.ReplaceChild($mycomment , $var);
}
$xml.Save($getxmlpath);
最佳答案
这样的事情可能会起作用:
[xml]$xml = Get-Content 'C:\Powershell\securityfile.xml'
# create namespace manager
$nsm = New-Object Xml.XmlNamespaceManager($xml.NameTable)
$nsm.AddNamespace('dns', $xml.DocumentElement.dns)
# remove nested comments from <auth-head> node(s)
($xml.SelectNodes('//dns:auth-head//comment()', $nsm)) | % {
[void]$_.ParentNode.RemoveChild($_)
}
# comment-out node(s)
($xml.SelectNodes('//dns:auth-head', $nsm)) | % {
$comment = $xml.CreateComment($_.OuterXml)
[void]$_.ParentNode.ReplaceChild($comment, $_)
}
# uncomment <bean> node(s)
($xml.SelectNodes('//comment()')) | ? {
$_.InnerText -like '*<bean*'
} | % {
$newxml = [xml]$_.InnerText
$node = $xml.ImportNode($newxml.DocumentElement, $true)
$node.SetAttribute('xmlns', $xml.DocumentElement.NamespaceURI)
[void]$_.ParentNode.ReplaceChild($node, $_)
}
我找不到重新插入 <bean> 的方法节点没有获得显式(空)命名空间属性(xmlns=""),因此我将该属性设置为 XML 文档的默认命名空间。
请注意,您必须从要注释掉的节点中删除(或以其他方式修改)嵌套注释。否则关闭-->来自第一个嵌套注释的注释会过早地终止注释节点,从而留下无效的 XML 结构:
<!--dns:auth-head alias="authHead">
<dns:user-generator>
<dns:user-data>
<!-- USER AA --> # XML comment ends here!
<dns:user name="AA"
password="AAAAAAAAAAAAAAAA" role="ROLE_AA" />
<!-- USER BB -->
<dns:user name="BB"
password="XXXXXXXXXXXXXXX" role="ROLE_BB" />
</dns:user-data> # tags from here on are invalid, because
</dns:user-generator> # they're missing their respective opening tag
</dns:auth-head-->
关于xml - 注释 XML 部分(在节点中有前缀)并取消注释其他,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31832783/
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion我审查了一些用Ruby编写的专业代码,没有发现任何评论。代码读起来相当清晰,但没有self记录。我应该期望专业编写的Ruby代码有注释吗?或者,是否有一些Ruby原则认为注释不是必需的?
我想禁用HTTP参数的自动XML解析。但我发现命令仅适用于Rails2.x,它们都不适用于3.0:config.action_controller.param_parsers.deleteMime::XML(application.rb)ActionController::Base.param_parsers.deleteMime::XMLRails3.0中的等价物是什么? 最佳答案 根据CVE-2013-0156的最新安全公告你可以将它用于Rails3.0。3.1和3.2ActionDispatch::ParamsParser::
我正在遍历数组中的一组标签名称,我想使用构建器打印每个标签名称,而不是求助于“我认为:builder=Nokogiri::XML::Builder.newdo|xml|fortagintagsxml.tag!tag,somevalendend会这样做,但它只是创建名称为“tag”的标签,并将标签变量作为元素的文本值。有人可以帮忙吗?这个看起来应该比较简单,我刚刚在搜索引擎上找不到答案。我可能没有以正确的方式提问。 最佳答案 尝试以下操作。如果我没记错的话,我添加了一个根节点,因为Nokogiri需要一个。builder=Nokogi
我想使用部分字符串搜索数组,然后获取找到该字符串的索引。例如:a=["Thisisline1","Wehaveline2here","andfinallyline3","potato"]a.index("potato")#thisreturns3a.index("Wehave")#thisreturnsnil使用a.grep将返回完整的字符串,使用a.any?将返回正确的true/false语句,但都不会返回匹配的索引找到了,或者至少我不知道该怎么做。我正在编写一段代码,该代码读取文件、查找特定header,然后返回该header的索引,以便它可以将其用作future搜索的偏移量。如果
这是一些奇怪的例子:#!/usr/bin/rubyrequire'rubygems'require'open-uri'require'nokogiri'print"withoutread:",Nokogiri(open('http://weblog.rubyonrails.org/')).class,"\n"print"withread:",Nokogiri(open('http://weblog.rubyonrails.org/').read).class,"\n"运行此返回:withoutread:Nokogiri::XML::Documentwithread:Nokogiri::