gpt4 book ai didi

java - 如何创建包含两个元素的嵌套 xml 结构?

转载 作者:行者123 更新时间:2023-12-01 04:50:39 24 4
gpt4 key购买 nike

我正在尝试创建一个 xml 结构,例如:

<OuterMostElement>
<NestedSet>
<Element></Element>
<Element></Element>
</NestedSet>
</OuterMostElement>

我正在调用一个方法createNestedSet连续两次创建此结构并传递 <OuterMostElement>文档片段。

   <OuterMostElement>
<NestedSet>
<Element></Element>
</NestedSet>
<NestedSet>
<Element></Element>
</NestedSet>
</OuterMostElement>

方法是:

  public static void createNestedSet(DocumentFragment df) {
if (oTargetLineProperties.isRendered()) {
Document doc = df.getOwnerDocument();
Element newParentElem = null;
newParentElem = createTagIfAbsent(doc, "somenamespace", "NestedSet");
Element newElem = null;
newElem = doc.createElementNS("someNameSpace",
"Element");

newParentElem.appendChild(newElem);
((XMLElement)df.getFirstChild()).appendChild(newParentElem);
}
}

以及辅助方法 createTagIfAbsent如下:

  private static Element createTagIfAbsent(Document doc, String nameSpace, String tagName) {
Element newParentElem;
NodeList nodes = doc.getElementsByTagName(tagName);
//Already contains tag . So just return the existing one
if(nodes!=null && nodes.getLength() > 0){
newParentElem = (Element)nodes.item(0) ;
}else{
newParentElem = doc.createElementNS(nameSpace,tagName);
}

return newParentElem;
}

为什么要创建 NestedSet仅当标签不存在时才无法正常工作?

最佳答案

如果我没记错的话,你需要使用 getElementsByTagNameNS

http://docs.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Document.html#getElementsByTagNameNS%28java.lang.String,%20java.lang.String%29

要获取您想要获取的元素,请传递正确的命名空间。

关于java - 如何创建包含两个元素的嵌套 xml 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15028239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com