Я пытаюсь написать скрипт python для создания объекта из XML-документа, но у меня возникли проблемы с пониманием того, как работают пути. Вот пример из Docs XML:Пути деревьев элемента Python
<args format="1.0">
<shaderType>
<tag value="pattern"/>
</shaderType>
<help>
Computes the facing ratio of the geometry : a simple dot product between
the camera vector and the surface normal.
</help>
<page name="Parameters" open="True">
<param name="faceForward"
label="Face Forward"
type="int"
default="1"
widget="checkbox">
<tags>
<tag value="__noconnection"/>
</tags>
<help>The facing ratio can be negative if the normal is pointing
away from the camera. This will flip the normal to always give a
positive result.</help>
</param>
<param name="invert"
label="Invert"
type="int"
default="0"
widget="checkbox">
<tags>
<tag value="__noconnection"/>
</tags>
<help>Inverts the facing ratio : black becomes white and
vice-versa.</help>
</param>
<param name="gamma"
label="Gamma"
type="float"
default="1.0"
widget="default">
<tags>
<tag value="float"/>
</tags>
<help>A simple gamma function to shape the facing ratio. A value of 1.0 is
neutral</help>
</param>
<param name="bumpNormal"
label="Bump Normal"
type="normal"
widget="default">
<tags>
<tag value="normal"/>
</tags>
<help>If the surface is bump-mapped, input the bump normal here. If
not connected, the node will use ths shading normal.</help>
</param>
</page>
<output name="resultF">
<tags>
<tag value ="float"/>
</tags>
</output>
<rfmdata nodeid="1053349"
classification="rendernode/RenderMan/pattern"/>
Допустим, я хочу, чтобы получить заявление справки для самого объекта. Я использовал это:
nodeText = tree.findtext('.//args/help')
print nodeText
Это, однако, возвращает None. Является ли путь неправильным?
Спасибо за вашу помощь, но я дать что попробовать, но он по-прежнему возвращаются Никто. Я знаю, что документы читаются правильно, потому что, когда я нахожусь, я получаю все элементы помощи. – jspada
@jspada Изменен мой ответ. –
Привет, Tichodroma, Спасибо за помощь, но это не сработало, потому что xpath не поддерживался деревом элементов. Я взял то, что вы сделали, и использовал его для решения проблемы. Я знаю, что это всегда будет первый элемент, поэтому я нашел все и выбрал первый элемент. – jspada