【发布时间】:2016-12-09 09:03:43
【问题描述】:
对此的任何帮助将不胜感激。我希望从一个 XML 文件中获取一个值,然后最好使用 PHP 将其输入到另一个 XML 中。如果它们有效,我将接受任何其他转化方法。
XML 1
<field-list>
<field Id="spMF_1_1634">
<tag>Customer Name</tag>
<type>string</type>
<required>true</required>
<value>1Test</value>
</field>
<field Id="spMF_2_1634">
<tag>Job Reference</tag>
<type>string</type>
<required>false</required>
<value>42442</value>
</field>
XML 2
<Log>
<DataSource>Data_source</DataSource>
<SQLStatement>SELECT TotalPrice FROM vwQuotations WHERE reference = 'REF42442'</SQLStatement>
<SQLStatementResult>Success</SQLStatementResult>
<SQLStatementValue>
<Row>
<Column Name="TotalPrice" DataType="REAL">2000</Column>
</Row>
</SQLStatementValue>
</Log>
我正在寻找的输出/结果:
<field-list>
<field Id="spMF_1_1634">
<tag>Customer Name</tag>
<type>string</type>
<required>true</required>
<value>1Test</value>
</field>
<field Id="spMF_2_1634">
<tag>Job Reference</tag>
<type>string</type>
<required>false</required>
<value>42442</value>
</field>
<field Id="AnyID">
<tag>TotalPrice</tag>
<type>string</type>
<required>false</required>
<value>2000</value>
</field>
第三个字段的值 (2000) 确实是我需要添加到第一个 XML 中的值。
如您所见,这两个 XML 格式不同。 我希望我已经清楚地解释了自己。
总而言之,我希望向 XML 1 添加一个额外的字段,其子属性与来自 XML 2 的 2000 匹配,并按照我的输出示例以与 XML 1 相同的格式输出。
谢谢。
******编辑******
我正在使用自动化软件来处理这些文件,所以很遗憾我无法将参数传递给 XML。
我将 XML 从 PDF (XML 1) 中剥离出来,然后我可以通过 XSLT 转换模块将其导出为 CSV。
XML 2 从数据库中提取,可以保存在静态文件夹中。
请看下面带有注释的截图。
我可以将 XML 2 文件路径硬编码到 XLT 转换中以插入数据吗?
【问题讨论】:
-
请创建一个Minimal, Complete, and Verifiable php 代码。你已经尝试了什么?我们会更容易为您提供帮助。
-
嗨,Alexandre,抱歉,我不能为你创建 php 代码,因为我不熟悉 PHP。我过去刚刚编辑了 php 代码来执行此类任务,我知道我可以根据我的编辑将它与我正在使用的软件一起使用。我已经尝试过各种“软件内”尝试来执行此任务,但是在这里不值得一提。下面的 michael.hor257k 与他的 XSLT 非常接近,但是我无法从 XML2 中提取值。