我正在使用这行代码从 XML 文件中获取两个数据条目
perl xmlPerl.pl zbxml.xml "//zabbix_export/templates/template/items/item/name/text() | //zabbix_export/templates/template/items/item/description/text()"
它获取数据并垂直显示。例如:
- 名称1
- 描述1
- 名称2
- 描述2
我在 c# 中使用了它并有一些代码,因此它会像这样显示
- 名称1 - 描述1
- 名称 2 - 描述 2
- name3 - (空白,因为没有描述)
描述中甚至出现了一些空白。这是 c# 代码,因为它可能会有所帮助。
XPathExpression expr;
expr = nav.Compile("/zabbix_export/templates/template/items/item/name | /zabbix_export/templates/template/items/item/description");
XPathNodeIterator iterator = nav.Select(expr);
//Iterate on the node set
List<string> listBox1 = new List<string>();
listBox1.Clear();
try
{
while (iterator.MoveNext())
{
XPathNavigator nav2 = iterator.Current.Clone();
// nav2.Value;
listBox1.Add(nav2.Value);
Console.Write(nav2.Value);
iterator.MoveNext();
nav2 = iterator.Current.Clone();
Console.Write("-" + nav2.Value + "\n");
好吧,我现在不得不将它切换到 Perl,我不确定是否应该尝试找到一些 Perl 代码来做我需要的事情,或者这是否可以在 XPath 中完成?我尝试查看一些 w3 教程,但没有找到我想要的。
谢谢!
编辑 - 我需要编辑我的 xmlPerl.pl 的这一部分吗
# print each node in the list
foreach my $node ( $nodeset->get_nodelist ) {
print XML::XPath::XMLParser::as_string( $node ) . "\n";
}