我试图读取文件路径在XML中的文件,然后使用xslt将该文件中的内容写入另一个新的xml,假设所有文件都在同一个文件夹中。
要求是,打开并读取input.xml并在" filepath"中找到文件路径。标记,然后打开并读取位于" filepath"中的AddressBook01.xml。然后阅读"姓名"在AddressBook01.xml文件中标记并将其写入Name01.xml等文件。
基本上如果足以知道如何使用XSLT读取和写入文件。
这可能吗?我对此很陌生,非常感谢任何帮助。
在input.xml中输入XML
Bundler.require(*Rails.groups)
AddressBook01.xml中的内容
?xml version="1.0" encoding="UTF-8"?>
<AddressFiles>
<AddressFile>
<name>AdressBook01</name>
<filepath>AddressBook01.xml</filepath>
</AddressFile>
<AddressFiles>
Names01.xml中的预期输出
?xml version="1.0" encoding="UTF-8"?>
<ContactDetails>
<Contact>
<Name>Tom</Name>
<Address>Toms Address</Address>
</Contact>
<Contact>
<Name>Peter</Name>
<Address>Peters Address</Address>
</Contact>
</ContactDetails>
答案 0 :(得分:0)
使用XSLT 2.0处理器,您可以使用doc
函数读取文件并使用xsl:result-document
创建结果文档,例如
<xsl:template match="AddressFile">
<xsl:result-document href="Names{replace(name, '[^0-9]+', '')}.xml">
<xsl:copy-of select="doc(filepath)//Contact/Name"/>
</xsl:result-document>
</xsl:template>
请注意,您的预期输出缺少包含Name
元素的根元素,因此它不是格式良好的XML文档。可以创建该结果格式,我的建议也是如此,但在大多数情况下,最好创建格式良好的XML文档,否则很少有方法可以使用XML工具读取/处理创建的文件。