我们可以访问另一个xml中的xml元素吗?

时间:2012-03-27 14:01:06

标签: xml lxml

我想知道我们是否可以在另一个xml中使用xml节点的值

XML 1:

<testnode file = "abc/blah.xml" xpath= "root1/root2">ValuePassed</testnode>

blah.xml:

<root1>
    <root2>
        <sometagval>
    </root2>
</root1>

现在在上面的例子中,我想访问blah.xml中的testnode元素值。

有人可以就此提出建议吗

1 个答案:

答案 0 :(得分:0)

您可以使用实体来实现此目的。拥有dtd取决于您的要求。在这里,您将定义各自XML中的所有章节,并将它们定义为ENTITY并在book.xml中使用它们。查看下面的示例用法:

<?xml version="1.0"?>
<!DOCTYPE book SYSTEM "book.dtd" [
<!ENTITY chapter1 SYSTEM "chapter1.xml">
<!ENTITY chapter2 SYSTEM "chapter2.xml">
<!ENTITY chapter3 SYSTEM "chapter3.xml">
]>
<book>
  <title>My Book Title</title>
  &chapter1;
  &chapter2;
  &chapter3;
</book>

但另一个更好的选择是使用 XInclude 。您也可以根据需要使用绝对URL。

<?xml version="1.0"?>
<book xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>My Book Title</title>
  <xi:include href="chapter1.xml"/>
  <xi:include href="chapter2.xml"/>
  <xi:include href="chapter3.xml"/>
</book>