簡體   English   中英

如何將XML內容作為String獲取

[英]How to get XML content as a String

<root>
<h id="1">
    <d value="1,2,3,4,5"><open>10:00</open><close>23:00</close></d>
    <d value="6"><open>10:00</open><close>2:00</close></d>
    <d value="7"><open>10:00</open><close>21:00</close></d>
</h>
<h id="2">
</h>
</root>

在這里,我有XML,其中root具有<h>標記節點的列表。 現在我需要將這些分成幾部分並將其設置為不同的變量(添加到地圖中)。

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new InputSource(new ByteArrayInputStream(data.getBytes("utf-8"))));
NodeList nList = doc.getElementsByTagName("h");
for (int i = 0; i < nList.getLength(); i++)
{
    Node nNode = nList.item(i);
    System.out.println(nNode.getAttributes().getNamedItem("id") + " " + ?????);        
}

我應該調用什么來獲取nNode的值( String值 )?

這是我在尋找上述代碼的asnwer,一旦有人填寫了????

1 <h id="1"><d value="1,2,3,4,5"><open>10:00</open><close>23:00</close></d><d value="6">open>10:00</open><close>2:00</close></d><d value="7"><open>10:00</open><close>21:00</close></d></h>
2 <h id="2"></h>

我不介意作為根元素

您可以使用Node.getTextContent()方便地獲取節點的所有文本(也可以獲取子文本)。

有關簡短示例,請參閱解析xml文件內容,而不知道xml文件結構


如果您正在嘗試獲取d節點的value屬性(我實際上無法告訴您,您的問題對我來說有點不清楚),那么它會有所不同 - 因為您將迭代每個h節點的子節點(使用getChildNodes()getFirstChild() + getNextSibling() )然后獲取它們的value屬性,就像獲取h節點的id屬性一樣(上面的鏈接也顯示了迭代子節點的示例)。

你試過jDom庫嗎? http://www.jdom.org/docs/apidocs/org/jdom2/output/XMLOutputter.html

 XMLOutputter outp = new XMLOutputter();
 String s = outp.outputString(your_jdom_element);

如果您使用的是來自javax.xml.soap.Node Node,您是否嘗試過nNode.toString()

你可以用它:

http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Node.html#getTextContent()

但是你的樣本nNode有其他節點,而不僅僅是文本。 看來你需要幫助方法從子節點構造String。

將nNode傳遞給nodeToString

Java中的XML節點到字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM