我有一个类似于这个格式的xml文件:
<benchmark>
<group>
<id>1</id>
<rule>
<id>H1234</id>
<severity>High</severity>
</rule>
<title>How to win</title>
</group>
<group>
<id>2</id>
<rule>
<id>5317</id>
<severity>low</severity>
</rule>
<title>How to not</title>
</group>
<group>
<id>3</id>
<rule>
<id>H15678</id>
<severity>medium</severity>
</rule>
<title>How to be</title>
</group>
<group>
<id>4</id>
<rule>
<id>H454</id>
<severity>High</severity>
</rule>
<title>How to lose</title>
</group></benchmark>
Run Code Online (Sandbox Code Playgroud)
我希望能够从xml docoument中的每个组中选择组/ id,组/规则/ id,组/规则/严重性和组/标题值.
我试过这个,但它只是让我在那里的一部分:
I have tried $xml.benchmark.group | %{$_} | select title, id
Run Code Online (Sandbox Code Playgroud)
我感谢您的帮助!
我有一个自定义异常,我正在使用它来捕捉我正在研究的学校项目中的不同错误.
class WrongValueException : public std::runtime_error
{
public:
WrongValueException(std::string mess): std::runtime_error(mess) {};
};
Run Code Online (Sandbox Code Playgroud)
问题是当我使用"throw WrongValueException("Error:Syntax");在下面的switch语句的default子句中.
Expression* SubExpression::parse()
{
Expression* left;
Expression* right;
char operation, paren;
left = Operand::parse();
cin >> operation;
right = Operand::parse();
cin >> paren;
switch (operation)
{
case '+':
return new Plus(left, right);
case '-':
return new Minus(left, right);
case '*':
return new Times(left, right);
case '/':
return new Divide(left, right);
default:
throw WrongValueException("Error: Syntax - " + operation);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
基本上,传递给swtich语句的字符应该是swtich语句中列出的运算符之一,如果不是我想抛出异常.当抛出异常时,我得到的是一个单个字符,它根据输入中给出的字符而改变.
我在主函数中捕获了错误.
输入和输出的示例是:
Enter …
Run Code Online (Sandbox Code Playgroud)