繁体   English   中英

如何使用XPath使用属性值填充元素

[英]How to populate element with attribute value using XPath

在category元素中为“ base”属性选择值时,我希望将此值作为纯文本自动插入到category元素中。 例如,在下面的代码中,我希望两个类别元素分别包含值Video和Alarms。

    <metadata>
    <category base="Video"/>
    <category base="Alarms"/>
    </metadata>

什么XPath表达式允许我执行此操作? 基本属性的值在单独的XML文件中预定义。 我正在使用Oxygen 15.1版。

谢谢

对此我感到抱歉。 这是我的源代码:

    <metadata>
    <category base="Video"/>
    <category base="Alarms"/>
    </metadata>

通过自定义XPath动作,我希望源代码类似于以下代码:

  <metadata>
  <category base="Video">Video</category>
  <category base="Alarms">Alarms</category>
  </metadata>

因此,我希望该元素采用分配给“基本”属性的值。 Oxygen与自定义XPath操作捆绑在一起,使您可以执行此类操作。 例如,通过自定义操作,我可以自动用特定的文本字符串填充元素。 但是,在上面的示例中,我不希望category元素采用预定义的字符串值,而是希望它自动采用赋予“ base”属性的值。 但是,如果我不能如前所述使用XPath转换文档,那我就搞错了树!

您不能使用XPath更改xml文档。 您可以使用XPath找到所需节点的值,然后创建包含所找到值的相同结构的新xml文档(或修改现有结构)。 有多种方法可以实现这一目标,例如,通过大多数编程语言或xml转换(XSLT或XQuery查询)。

您可以在Internet上找到大量示例,在其中可以找到如何使用XPath查找感兴趣的节点,然后在fe Java中对其进行修改(在此处找到):

myNodeList = (NodeList) xpath.compile("//MyXPath/text()")
       .evaluate(myXmlDoc, XPathConstants.NODESET);
myNodeList.item(0).setNodeValue("Hi mom!");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM