используйте DeploymentItem
атрибут
using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CarMaker;
namespace DeploymentTest
{
[TestClass]
public class UnitTest1
{
[TestMethod()]
[DeploymentItem("testFile1.xml")]
public void ConstructorTest()
{
string file = "testFile1.xml";
Assert.IsTrue(File.Exists(file), "deployment failed: " + file +
" did not get deployed");
}
}
}
Использовать getpath
из объектов ElementTree.
from lxml import etree
root = etree.fromstring('<foo><bar>Data</bar><bar><baz>data</baz>'
'<baz>data</baz></bar></foo>')
tree = etree.ElementTree(root)
for e in root.iter():
print tree.getpath(e)
Печать
/foo
/foo/bar[1]
/foo/bar[2]
/foo/bar[2]/baz[1]
/foo/bar[2]/baz[2]
См. Xpath и XSLT с lxml из документация lxml Здесь указывается путь к элементу, содержащему текст
Примером может быть
import cStringIO
from lxml import etree
f = cStringIO.StringIO('<foo><bar><x1>hello</x1><x1>world</x1></bar></foo>')
tree = lxml.etree.parse(f)
find_text = etree.XPath("//text()")
# and print out the required data
print [tree.getpath( text.getparent()) for text in find_text(tree)]
# answer I get is
>>> ['/foo/bar/x1[1]', '/foo/bar/x1[2]']