0

私は次のようなres/xml / myxmlfileを持っています(スクリーンショットは申し訳ありませんが、stackoverflowエディターでxmlファイルを正しく表示する方法がわかりません):

<Food>
    <Pizza>
        <type>Salami</type>
        <type>Pepperoni</type>
        <type>Hawaiian</type>
    </Pizza>
    <Burger>
        <type>Chicken</type>
        <type>Bacon</type>
        <type>Cheese</type>
    </Burger>
    <Soup>
        <type>Pumpkin</type>
        <type>Sweet Corn</type>
        <type>Vegetarian</type>
    </Soup>
</Food>

食べ物の種類をパラメーターとして受け取り(ハンバーガーなど)、タグ間のすべてのアイテムを文字列にロードする関数を作成したいと思います[i]。

したがって、関数は次のようになります。

public string[] GetAllSubFoodTypes (string foodtype)
{
    string[] contents;

    //--- pseudocode as I don't know how to do this
    Loadxmlfile
    Find the <foodtype> tag in file
    Load all data between <type> and </type> into the string[] contents
    return contents; 
}

mainから関数を呼び出す方法の例:

string[] subFoodType;

subFoodType = GetAllSubFoodTypes("Burger")

subFoodTypeの内容は次のようになります。

subFoodType[0]「チキン」、subFoodType[1]「ベーコン」などになります。

4

2 に答える 2

0

次に、DOMAPIを使用できます。

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse("input.xml");

XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/Food/Pizza/type[1]"; // first type
Node pizza = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);

if (pizza== null)
    System.out.println("Element pizza type not exists");
else
    System.out.println(pizza.getTextContent());
于 2012-04-28T06:34:24.223 に答える
0

プルパーサー、DOMパーサー、SAXパーサーなどのxml解析を使用できます

于 2012-04-28T06:20:39.833 に答える